home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 001a / commo51.zip / MACRO.DOC < prev    next >
Text File  |  1991-12-21  |  120KB  |  3,424 lines

  1.  
  2.  
  3.  
  4.                                    ____________
  5.  
  6.                                    {COMMO} (tm)
  7.                                    ____________
  8.  
  9.  
  10.                       "A New Standard in Telecommunications"
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.                                         by
  18.  
  19.                                   Fred P. Brucker
  20.  
  21.                                Post Office Box 9103
  22.                                Santa Rosa, CA 95405
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.                               Macro Programming Guide
  30.  
  31.  
  32.  
  33.  
  34.                                     Release 5.1
  35.  
  36.                                  December 21, 1991
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.        This program and associated documentation are the property of the
  44.        author and may not be sold without permission.  They may be freely
  45.        distributed, unaltered and as a unit, via electronic bulletin board
  46.        systems.  Permission to distribute on diskette or in any other
  47.        manner must be obtained in writing.  See the file LICENSES for
  48.        additional licensing and distribution details.
  49.  
  50.        The author does not guarantee this program to be free from defects
  51.        and may not be held responsible for loss caused by such.  Your use
  52.        of this program constitutes your acceptance of these terms.
  53.  
  54.  
  55.  
  56.  
  57.            (C)Copyright 1989,1991  Fred P. Brucker  All Rights Reserved
  58.  
  59.  
  60.  
  61.        ========================
  62.        Registration Information
  63.        ========================
  64.  
  65.        {COMMO} is a "SHAREWARE" product.  You are entitled to evaluate it
  66.        for 30 days.  If it suits your needs and you would like to continue
  67.        using it, then you must pay the licensing fee.  Please use the order
  68.        form in the file REGISTER.FRM (or the one below).
  69.  
  70.           Send to:       Fred P. Brucker
  71.                          Post Office Box 9103
  72.                          Santa Rosa, CA 95405
  73.  
  74.        When you REGISTER you will be licensed to use all future releases of
  75.        {COMMO}.  You will never have to pay an "update" charge.  You will
  76.        also receive instructions for removing the Shareware Notice at
  77.        program startup.
  78.  
  79.        My (voice) TELEPHONE NUMBER for inquiries and support for registered
  80.        users is (707) 573-1065.  Please restrict calls to business hours
  81.        (Mon-Fri, 9am-5pm, Pacific time).
  82.  
  83.        Registered users will also receive priority support on Bulletin
  84.        Boards, CompuServe and GEnie (see READ.ME).
  85.  
  86.        Call or write for pricing information on MULTI-USER (site) licenses. 
  87.        Discounts are given on quantities greater than 10.
  88.  
  89.        See the file LICENSES for licensing and distribution details.
  90.  
  91.  
  92.  
  93.  
  94.                      {COMMO} 5.1 SINGLE USER REGISTRATION FORM
  95.  
  96.  
  97.        Name     ___________________________________________________________
  98.  
  99.        Company name (if company address)   ________________________________
  100.  
  101.        Address  ___________________________________________________________
  102.  
  103.                 ___________________________________________________________
  104.  
  105.                 ___________________________________________________________
  106.  
  107.        ====================================================================
  108.                          All prices shown are US DOLLARS.
  109.                       Please remit US funds on US bank only.
  110.         NET 30 TERMS will be accepted on orders totalling $100.00 or more.
  111.                      Payment accepted as check or money order,
  112.                             payable to FRED P. BRUCKER.
  113.               SORRY, I am unable to accept credit cards at this time.
  114.        ====================================================================
  115.  
  116.        {COMMO} single user license, SPECIAL PACKAGE ... $50.00   $ ________
  117.           Includes: (1) Printed, bound, indexed manual.
  118.                     (2) Latest release on diskette plus utilities
  119.                         (COMMOPNS, MOSTHOST, CMC, etc., see READ.ME).
  120.                             Choose format: 5.25" ____ 3.5" ____
  121.                             Current release  ____  or next ____
  122.  
  123.        {COMMO} single user LICENSE only ................ $35.00  $ ________
  124.           You may also order a diskette.
  125.  
  126.        Registered users may order PRINTED MANUAL only .. $20.00  $ ________
  127.           Limit of one per license.  Your serial no. _________
  128.  
  129.        Registered users may order DISKETTE only ........  $5.00  $ ________
  130.            Limit of one per license.  Your serial no. _________
  131.                             Choose format: 5.25" ____ 3.5" ____
  132.                             Current release  ____  or next ____
  133.  
  134.                                                        Subtotal  $ ________
  135.  
  136.                     California residents add sales tax, 7.5%     $ ________
  137.                       (No tax when ordering license alone)
  138.  
  139.        Special Package or Manual order, add SHIPPING:
  140.                               USA/Canada/Mexico ........  $3.00
  141.                               All other countries ...... $10.00  $ ________
  142.  
  143.                                                        Total     $ ________
  144.  
  145.  
  146.        Thank you, and I hope you enjoy {COMMO}.
  147.  
  148.  
  149.  
  150.                    {COMMO} (tm)  Macro Programming Guide            page ii
  151.  
  152.  
  153.        ========
  154.        Contents
  155.        ========
  156.  
  157.  
  158.           Programming {COMMO} Macros  . . . . . . . . . . . . . . . . .   1
  159.                Macro Structure  . . . . . . . . . . . . . . . . . . . .   1
  160.                Macro Functions  . . . . . . . . . . . . . . . . . . . .   2
  161.                Macro Labels . . . . . . . . . . . . . . . . . . . . . .   4
  162.                Macro Variables  . . . . . . . . . . . . . . . . . . . .   4
  163.                How to Use Variables . . . . . . . . . . . . . . . . . .   5
  164.                Reserved Variables . . . . . . . . . . . . . . . . . . .   6
  165.                Executing Macros . . . . . . . . . . . . . . . . . . . .   8
  166.                Additional Macro Execution Rules . . . . . . . . . . . .   8
  167.                Cancelling a Macro . . . . . . . . . . . . . . . . . . .   9
  168.  
  169.           Description of Functions (Alphabetical) . . . . . . . . . . .   9
  170.                ABAUd  . . . . . . . . . . . . . . . . . . . . . . . . .  10
  171.                ALARm  . . . . . . . . . . . . . . . . . . . . . . . . .  10
  172.                ASCIiup  . . . . . . . . . . . . . . . . . . . . . . . .  10
  173.                AUTO . . . . . . . . . . . . . . . . . . . . . . . . . .  11
  174.                BEEP . . . . . . . . . . . . . . . . . . . . . . . . . .  12
  175.                BREAk  . . . . . . . . . . . . . . . . . . . . . . . . .  12
  176.                CALL . . . . . . . . . . . . . . . . . . . . . . . . . .  12
  177.                CAPMode  . . . . . . . . . . . . . . . . . . . . . . . .  13
  178.                CAPTure  . . . . . . . . . . . . . . . . . . . . . . . .  13
  179.                CHATmode . . . . . . . . . . . . . . . . . . . . . . . .  13
  180.                CLEAr  . . . . . . . . . . . . . . . . . . . . . . . . .  14
  181.                COMPare  . . . . . . . . . . . . . . . . . . . . . . . .  14
  182.                CURSor . . . . . . . . . . . . . . . . . . . . . . . . .  15
  183.                DECRement  . . . . . . . . . . . . . . . . . . . . . . .  15
  184.                DIAL . . . . . . . . . . . . . . . . . . . . . . . . . .  15
  185.                DISPlay  . . . . . . . . . . . . . . . . . . . . . . . .  17
  186.                DOORway  . . . . . . . . . . . . . . . . . . . . . . . .  18
  187.                DPARms . . . . . . . . . . . . . . . . . . . . . . . . .  18
  188.                EDIT . . . . . . . . . . . . . . . . . . . . . . . . . .  19
  189.                ELAPse . . . . . . . . . . . . . . . . . . . . . . . . .  19
  190.                EXECute  . . . . . . . . . . . . . . . . . . . . . . . .  19
  191.                     Using the Direct Switch: exec-D . . . . . . . . . .  21
  192.                     EXECute Preview Mode  . . . . . . . . . . . . . . .  22
  193.                EXIT . . . . . . . . . . . . . . . . . . . . . . . . . .  22
  194.                GETString  . . . . . . . . . . . . . . . . . . . . . . .  23
  195.                GOLOok . . . . . . . . . . . . . . . . . . . . . . . . .  24
  196.                GOTO . . . . . . . . . . . . . . . . . . . . . . . . . .  25
  197.                HANGup . . . . . . . . . . . . . . . . . . . . . . . . .  25
  198.                HELP . . . . . . . . . . . . . . . . . . . . . . . . . .  26
  199.                HFLOw  . . . . . . . . . . . . . . . . . . . . . . . . .  26
  200.                HOLD . . . . . . . . . . . . . . . . . . . . . . . . . .  26
  201.                IFCArrier  . . . . . . . . . . . . . . . . . . . . . . .  26
  202.                IFCOndition  . . . . . . . . . . . . . . . . . . . . . .  27
  203.                IFERrorlevel . . . . . . . . . . . . . . . . . . . . . .  28
  204.                IFEXist  . . . . . . . . . . . . . . . . . . . . . . . .  29
  205.  
  206.  
  207.  
  208.                    {COMMO} (tm)  Macro Programming Guide           page iii
  209.  
  210.  
  211.                INCRement  . . . . . . . . . . . . . . . . . . . . . . .  30
  212.                INITmodem  . . . . . . . . . . . . . . . . . . . . . . .  30
  213.                INPUt  . . . . . . . . . . . . . . . . . . . . . . . . .  30
  214.                INSTring . . . . . . . . . . . . . . . . . . . . . . . .  31
  215.                LENGth . . . . . . . . . . . . . . . . . . . . . . . . .  31
  216.                LIGHts . . . . . . . . . . . . . . . . . . . . . . . . .  32
  217.                LOCAlecho  . . . . . . . . . . . . . . . . . . . . . . .  32
  218.                LOOKfor  . . . . . . . . . . . . . . . . . . . . . . . .  32
  219.                MACLoad  . . . . . . . . . . . . . . . . . . . . . . . .  33
  220.                MACRo  . . . . . . . . . . . . . . . . . . . . . . . . .  34
  221.                MARK . . . . . . . . . . . . . . . . . . . . . . . . . .  35
  222.                NOOP . . . . . . . . . . . . . . . . . . . . . . . . . .  35
  223.                PARMs  . . . . . . . . . . . . . . . . . . . . . . . . .  35
  224.                PASSword . . . . . . . . . . . . . . . . . . . . . . . .  36
  225.                PAUSe  . . . . . . . . . . . . . . . . . . . . . . . . .  36
  226.                POPStack . . . . . . . . . . . . . . . . . . . . . . . .  36
  227.                PRINtlog . . . . . . . . . . . . . . . . . . . . . . . .  37
  228.                PUSHstack  . . . . . . . . . . . . . . . . . . . . . . .  37
  229.                RCLOse . . . . . . . . . . . . . . . . . . . . . . . . .  38
  230.                READ . . . . . . . . . . . . . . . . . . . . . . . . . .  38
  231.                RETUrn . . . . . . . . . . . . . . . . . . . . . . . . .  39
  232.                ROPEn  . . . . . . . . . . . . . . . . . . . . . . . . .  39
  233.                RXMOdem  . . . . . . . . . . . . . . . . . . . . . . . .  40
  234.                SCREen . . . . . . . . . . . . . . . . . . . . . . . . .  41
  235.                SCROllback . . . . . . . . . . . . . . . . . . . . . . .  41
  236.                SEND . . . . . . . . . . . . . . . . . . . . . . . . . .  41
  237.                SETEsc . . . . . . . . . . . . . . . . . . . . . . . . .  42
  238.                SETGet . . . . . . . . . . . . . . . . . . . . . . . . .  43
  239.                SETLook  . . . . . . . . . . . . . . . . . . . . . . . .  44
  240.                SETVariable  . . . . . . . . . . . . . . . . . . . . . .  46
  241.                SHELl  . . . . . . . . . . . . . . . . . . . . . . . . .  47
  242.                SFLOw  . . . . . . . . . . . . . . . . . . . . . . . . .  47
  243.                SOUNd  . . . . . . . . . . . . . . . . . . . . . . . . .  47
  244.                SPOCtrl  . . . . . . . . . . . . . . . . . . . . . . . .  48
  245.                STATusline . . . . . . . . . . . . . . . . . . . . . . .  48
  246.                STOP . . . . . . . . . . . . . . . . . . . . . . . . . .  48
  247.                SUBString  . . . . . . . . . . . . . . . . . . . . . . .  49
  248.                SXMOdem  . . . . . . . . . . . . . . . . . . . . . . . .  49
  249.                TOGGles  . . . . . . . . . . . . . . . . . . . . . . . .  50
  250.                UNMArk . . . . . . . . . . . . . . . . . . . . . . . . .  50
  251.                VTCUr  . . . . . . . . . . . . . . . . . . . . . . . . .  51
  252.                VTPAd  . . . . . . . . . . . . . . . . . . . . . . . . .  51
  253.                WCLOse . . . . . . . . . . . . . . . . . . . . . . . . .  51
  254.                WOPEn  . . . . . . . . . . . . . . . . . . . . . . . . .  52
  255.                WRITE  . . . . . . . . . . . . . . . . . . . . . . . . .  52
  256.  
  257.           Appendix A   Table of {COMMO} Key-labels  . . . . . . . . . .  53
  258.                Enhanced Keyboard Key-labels . . . . . . . . . . . . . .  54
  259.  
  260.           Appendix B   Macro Functions Listed by Class  . . . . . . . .  54
  261.  
  262.  
  263.  
  264.                    {COMMO} (tm)  Macro Programming Guide            page 1
  265.  
  266.  
  267.        ==========================
  268.        Programming {COMMO} Macros
  269.        ==========================
  270.  
  271.        IMPORTANT!  Please read the next few pages before you attempt to
  272.        write any macros!  The rules for writing {COMMO} macros are few in
  273.        number, but must be followed carefully.  Examples of more complex
  274.        macro programming are given in the sample Macro File COMMO.MAC, in
  275.        the supplied file SAMPLES.MAC and in the Host Mode and Guide macros.
  276.  
  277.        The following sections assume familiarity with {COMMO}'s key
  278.        commands and with other features of the program.  Since many macro
  279.        functions have corresponding key commands, duplicate explanations
  280.        will not be given here.  Refer to the description of the key command
  281.        in COMMO.DOC.
  282.  
  283.        {COMMO}'s Macro File may contain any number of macros.  The only
  284.        size limitation on the file is that the Dialing Directory and Macro
  285.        File combined must total 64k bytes or less.
  286.  
  287.        Macros are "interpreted," which implies the following:
  288.  
  289.           (1)  Macros are not processed until they are executed.
  290.  
  291.           (2)  Only macros within the currently loaded Macro File are
  292.                available for use.
  293.  
  294.           (3)  Macros added or modified with the Internal Editor are
  295.                available immediately.
  296.  
  297.        Alternate Macro Files may be loaded using the MACLoad function (the
  298.        original file is replaced and may be reloaded at a later time).
  299.  
  300.  
  301.        Macro Structure
  302.        ===============
  303.  
  304.        Macros consist of a series of items enclosed in curly braces.  Items
  305.        may be placed on the same line or on as many lines as desired.  The
  306.        file is entirely free-form.  Lines may be up to 255 characters in
  307.        length and all text outside the curly braces is ignored.
  308.  
  309.        There are two types of items: "functions" and "labels."
  310.  
  311.           Functions are action items.  Some are equivalent to {COMMO} key
  312.           commands, such as DIAL, while others are unique to the macro
  313.           language, such as SETVariable.
  314.  
  315.           Labels are macro entry points and may be placed anywhere within
  316.           the Macro File.
  317.  
  318.  
  319.  
  320.                    {COMMO} (tm)  Macro Programming Guide            page 2
  321.  
  322.  
  323.        Macro Functions
  324.        ===============
  325.  
  326.        Each macro function is described in detail later in this document. 
  327.        See also Appendix B "Macro Functions Listed by Class."
  328.  
  329.  
  330.        The general form of any macro function is:
  331.  
  332.           {name-switches arg1,arg2,...,argn}
  333.  
  334.                name      The function name describes the action to be
  335.                          performed and consists of four or more characters.
  336.                          Only the first four are significant and case is
  337.                          ignored.
  338.  
  339.                switches  These are used to alter the operation of a
  340.                          function.  Each switch is a single letter and may
  341.                          be followed by a numeric value, usually "1" or "0"
  342.                          to indicate "yes" or "no" respectively.
  343.  
  344.                          Switches have default interpretations when the
  345.                          numeric value is omitted, or when the switch is
  346.                          not present.
  347.  
  348.                          Switches must be separated from the name with a
  349.                          hyphen (no intervening spaces).  They may be upper
  350.                          or lower case.
  351.  
  352.                          See individual function descriptions for details
  353.                          (note that only certain functions have switches).
  354.  
  355.                args      Arguments follow the function name and switches
  356.                          separated by a SINGLE SPACE.  Individual arguments
  357.                          are separated with commas and may contain no
  358.                          extraneous spaces (all spaces are significant).
  359.  
  360.        NOTE:  Curly braces may be represented within macro functions by
  361.        using ^( for { and ^) for }.
  362.  
  363.        Examples:
  364.  
  365.           {send Hi, how are you?}
  366.  
  367.                This function sends the string "Hi, how are you?" to the
  368.                modem.  SEND has only one argument -- the string to send
  369.                out.  Since the string is the last argument, it may contain
  370.                commas and spaces.  Quotes are not used to define strings.
  371.  
  372.           {ifcon-LE label1,label2}
  373.  
  374.  
  375.  
  376.                    {COMMO} (tm)  Macro Programming Guide            page 3
  377.  
  378.  
  379.                The IFCOndition function tests for conditions set by other
  380.                functions, such as COMPare.  Here two switches are present,
  381.                telling {COMMO} to test for less than or equal:
  382.  
  383.                     L    Test for "less than."
  384.                     E    Test for "equal."
  385.  
  386.                The two arguments are labels to GOTO depending on the
  387.                conditions.
  388.  
  389.                Notice that "name-switches" may be written in a number of
  390.                different ways:
  391.  
  392.                     ifco-LE  ifcondition-EL  ifcond-LE
  393.  
  394.           {asci-S0E1 pathname}
  395.  
  396.                The ASCII Upload function will send the file indicated by
  397.                "pathname."  The switches override current settings and tell
  398.                {COMMO}:
  399.  
  400.                     S0   Do NOT strip linefeeds.
  401.                     E1   DO expand blank lines (may also be written "E").
  402.  
  403.           {sound}   {sound yes}
  404.  
  405.                The first function will TOGGLE Master Sound ON/OFF (since
  406.                there is no argument).  The second will turn the sound ON.
  407.  
  408.  
  409.        One very important function is the STOP function.  It is used to
  410.        terminate macro processing and may appear in either its long form or
  411.        short form:
  412.  
  413.           ... {stop}          long form
  414.           ... {}              short form
  415.  
  416.        Macro processing continues until a STOP function is executed.  Be
  417.        sure to use one or processing will continue into the next macro!
  418.  
  419.  
  420.  
  421.                    {COMMO} (tm)  Macro Programming Guide            page 4
  422.  
  423.  
  424.        Macro Labels
  425.        ============
  426.  
  427.        Labels are identifiers consisting of one or more characters.  When a
  428.        label is defined, it must be preceded by a colon.  References to
  429.        labels, such as {goto label}, do not require the colon.
  430.  
  431.        IMPORTANT!  {COMMO} always searches for labels from the beginning of
  432.        the Macro File.  This means that if a label is duplicated within the
  433.        file, the first occurrence will be used.
  434.  
  435.        Only the first eight characters in a label are significant.  Case is
  436.        ignored.  All characters are allowed in labels except the following:
  437.  
  438.           colon          ":"
  439.           space          " "
  440.           comma          ","
  441.           slash          "/"
  442.           curly braces   "{" or "}"
  443.  
  444.        Examples:
  445.  
  446.           {:mailrun} {call login} ...
  447.  
  448.           {:start-here} {:another.entry} {send Begin now!} ...
  449.  
  450.  
  451.        A number of three character labels are reserved and are called "key-
  452.        labels."  When the corresponding key is pressed from the Terminal
  453.        Screen, {COMMO} will look for the key-label in the current Macro
  454.        File.  If the key-label is found, macro processing will begin at
  455.        that location.
  456.  
  457.        Any default key assignment may be overridden using a key-label.  For
  458.        example, pressing Alt-D normally enters the Dialing Directory.  But
  459.        suppose this line is in the Macro File:
  460.  
  461.           {:ald} {clear} {}
  462.  
  463.        Now pressing Alt-D will clear the screen.
  464.  
  465.        See Appendix A "Table of {COMMO} Key-labels" for a complete list of
  466.        keys that may be assigned.
  467.  
  468.  
  469.        Macro Variables
  470.        ===============
  471.  
  472.        {COMMO} maintains a String Variable Space in which variables appear
  473.        in the form:
  474.  
  475.           name,string
  476.  
  477.  
  478.  
  479.                    {COMMO} (tm)  Macro Programming Guide            page 5
  480.  
  481.  
  482.  
  483.                name      An identifier consisting of one or more characters
  484.                          of which only the first eight are significant. 
  485.                          Case is ignored.  The following are the ONLY valid
  486.                          characters that my be used in a variable name:
  487.  
  488.                               "A" through "Z"
  489.                               "a" through "z"
  490.                               "0" through "9"
  491.                               "_" underline.
  492.  
  493.                          All other characters will terminate the name.
  494.  
  495.                string    A text string.  The string must not contain any
  496.                          control characters below ASCII 28.  Null strings
  497.                          (0 characters) do not appear in variable space.
  498.  
  499.                          Strings consisting of only the digits 0-9 and
  500.                          representing a decimal number from 0 to 65535 are
  501.                          also numeric variables (there is no other
  502.                          difference between string and numeric variables).
  503.  
  504.                          The maximum length of strings is 240 characters.
  505.  
  506.        The String Variable Space may be viewed from within the Macro
  507.        Processor window by pressing "V".  The amount of unused string space
  508.        is shown at the bottom of the screen.
  509.  
  510.        Once a variable is defined, it remains in String Variable Space
  511.        until it is redefined or deleted (set to null).  Therefore variables
  512.        should be deleted or re-used to prevent String Variable Space from
  513.        becoming full.
  514.  
  515.  
  516.        How to Use Variables
  517.        ====================
  518.  
  519.        {COMMO} variables may be used in macro functions and also in the
  520.        telephone number field of the Dialing Directory.  See "Alt-D 
  521.        Dialing Directory" in COMMO.DOC for this latter usage.
  522.  
  523.        When a variable name appears within a function, the string assigned
  524.        to the name is substituted for the name.  If the variable is null,
  525.        then the name is replaced with 0 characters.  {COMMO} will expand
  526.        the variables in a function before processing it.
  527.  
  528.        In order to distinguish variable names, they must be preceded with a
  529.        percent sign "%" (use two percent signs if a percent sign is needed
  530.        in the data).
  531.  
  532.        The end of the variable name is indicated with another "%" or with
  533.        the first character that is not allowed in a name (see above).
  534.  
  535.  
  536.  
  537.                    {COMMO} (tm)  Macro Programming Guide            page 6
  538.  
  539.  
  540.  
  541.  
  542.        A variable definition example:
  543.  
  544.           {setvar animal,Elephant} or {setvar %animal,Elephant}
  545.  
  546.                Notice that the "%" is not required (but is permitted) when
  547.                the variable name is the first argument of a function that
  548.                defines, modifies or tests the value of a variable.  Other
  549.                such functions include INPUt, GETString, INCRement,
  550.                DECRement, COMPare, SUBString, INSTring, READ.
  551.  
  552.                If the variable name in this situation needs to be a
  553.                variable, then use two percent signs:
  554.  
  555.           {setv %%animal,Elephant}
  556.  
  557.  
  558.        Variable usage examples:
  559.  
  560.           {setvar animal,Elephant}
  561.           {send %animal}           Sends "Elephant" to the modem.
  562.           {send animal}            Sends "animal".
  563.           {send %animal%s are large animals}
  564.                                    Sends "Elephants are large animals". 
  565.                                    Note that the trailing "%" is required
  566.                                    here.
  567.  
  568.           {setvar animal,Elephant}
  569.           {setv creature,animal}
  570.           {send creature}          Sends "creature". 
  571.           {send %creature}         Sends "animal". 
  572.           {setv %%creature,Giraffe}
  573.           {send %animal}           Sends "Giraffe".
  574.  
  575.  
  576.        IMPORTANT!  Variables may NOT be substituted within the function
  577.        name or switches.  They may be substituted anywhere else, even for
  578.        the commas separating arguments.
  579.  
  580.  
  581.        Reserved Variables
  582.        ==================
  583.  
  584.        Certain variables have fixed names so that {COMMO} can find them
  585.        whenever they are needed.  You must define some of these to enable
  586.        special program features.  Others are defined by {COMMO} based on
  587.        operating conditions.
  588.  
  589.        Reserved variable names begin with an underline character "_" to
  590.        distinguish them from ordinary variables.
  591.  
  592.  
  593.  
  594.                    {COMMO} (tm)  Macro Programming Guide            page 7
  595.  
  596.  
  597.  
  598.        Following is a list of reserved variables that must be entered in
  599.        String Variable Space.  They may be defined in the Setup File or
  600.        within a macro:
  601.  
  602.           _modini        Modem Initialization String
  603.           _dialpf        Default Dialing Prefix
  604.           _dialsf        Default Dialing Suffix
  605.           _dialsr        Dialing Success responses
  606.           _dialfr        Dialing Failure responses
  607.           _uselog        Pathname of Usage Log
  608.  
  609.        These variable names begin with "_" to remind you that they are
  610.        special.  They may be changed at any time.
  611.  
  612.  
  613.        Here is a list of "built-in" variables that do not appear in String
  614.        Variable Space:
  615.  
  616.           _hom           {COMMO} home directory: c:\commo\, etc.
  617.           _set           Filename of Setup File
  618.           _fon           Filename of Dialing Directory
  619.           _mac           Filename of default Macro File
  620.           _cap           Current Capture File pathname
  621.           _scr           Current Screen Image File pathname
  622.           _err           Errorlevel from last EXEC-D, RXMOdem or SXMOdem
  623.           _pos           Position in string
  624.           _len           Length of string
  625.           _por           Current serial port number: 1, 2, etc.
  626.           _spe           Current serial port speed: 2400, 9600, etc.
  627.           _mod           Last speed reported by modem
  628.           _nci           Number of characters in input buffer
  629.           _pas           Current Password String
  630.           _ela           Elapsed time in minutes
  631.           _dat           Full date, mm/dd/yy
  632.           _mon           Month, mm
  633.           _day           Day of the month, dd
  634.           _yea           Year, yy
  635.           _dwn           Numeric day of the week: 1=Mon, ... , 7=Sun
  636.           _dwt           Text day of the week: Mon, Tue, ...
  637.           _tim           Full time, hh:mm xm (am or pm)
  638.           _24h           24 hour, hh
  639.           _12h           12 hour, hh
  640.           _amp           Am/pm indicator, xm
  641.           _min           Minute, mm
  642.           _sec           Second, ss
  643.           _row           Current cursor row
  644.           _col           Current cursor column
  645.  
  646.        Any variable that starts with the same four characters as a built-in
  647.        variable will be considered the same variable.  For example "_pas"
  648.        may be written "_password" and "_yea" may be written "_year".
  649.  
  650.  
  651.  
  652.                    {COMMO} (tm)  Macro Programming Guide            page 8
  653.  
  654.  
  655.  
  656.        NOTE:  Any attempt to set a built-in variable will result in an
  657.        entry in variable space, thus effectively redefining it (it's built-
  658.        in value will not be available again until this entry is set to
  659.        null).
  660.  
  661.  
  662.        Executing Macros
  663.        ================
  664.  
  665.        Macro execution may be started in any of the following ways:
  666.  
  667.        1) Open the Macro Processor window by pressing Alt-M.  Position the
  668.           Selector Bar at the desired starting point and press [Enter]. 
  669.           The Macro Processor will begin processing at the first macro
  670.           label or function on the line.
  671.  
  672.           NOTE:  Macros started with the Selector Bar do not need macro
  673.           labels and may be started at any point within the macro.
  674.  
  675.        2) If a macro label is also a key-label, then you may press that key
  676.           from the Terminal Screen.  Note that if the same key-label
  677.           appears more than once, the first occurrence will be used.
  678.  
  679.        3) A macro may be linked to a Dialing Directory entry.  In this case
  680.           {COMMO} will GOTO the macro when a connection is established with
  681.           that system (or optionally CALL it, see the DIAL function).
  682.  
  683.        4) A startup macro may be specified in the Setup File using the
  684.           "{mac=label}" item.
  685.  
  686.        5) A startup macro may be specified on the command line with the
  687.           switch "/:label".  This will override the Setup File macro.
  688.  
  689.        6) A macro may be an argument of another function such as CALL,
  690.           GOTO, DIAL or SETLook (these are detailed in a later section).
  691.  
  692.        Some macro functions show their current action on the status line at
  693.        the bottom of the screen.  In addition, a "face" character in the
  694.        middle of the status line indicates that a macro is executing.
  695.  
  696.  
  697.        Additional Macro Execution Rules
  698.        ================================
  699.  
  700.        ASCII keys may be typed to the serial port during long functions
  701.        (LOOKfor, GETString, PAUSe, HOLD, etc.).
  702.  
  703.        The Macro Processor will execute functions in order until one of the
  704.        following conditions occurs:
  705.  
  706.        1) A CALL, GOTO, RETURn, STOP, EXIT, etc. is encountered.
  707.  
  708.  
  709.  
  710.                    {COMMO} (tm)  Macro Programming Guide            page 9
  711.  
  712.  
  713.  
  714.        2) Control is transferred to an alternate macro from certain
  715.           functions when a special condition occurs.  An example of this is
  716.           the SETLook function.  The alternate will execute when a
  717.           subsequent LOOKfor times out.
  718.  
  719.        3) A macro error occurs.  This will bring up the Macro Processor
  720.           window with the Selector Bar on the problem line.  The macro will
  721.           be terminated.
  722.  
  723.        4) The end of the Macro File is reached.
  724.  
  725.  
  726.        Cancelling a Macro
  727.        ==================
  728.  
  729.        The [Esc] key is used to terminate macro processing.  To send an
  730.        <esc> code to the remote (ASCII 27) during macro execution, press
  731.        Ctrl-[ (Ctrl + left bracket).
  732.  
  733.        Current function execution may be terminated by pressing
  734.        [Ctrl-Break].  For example, this can be used to terminate a LOOKfor,
  735.        PAUSe or HOLD prematurely.  Macro processing will advance to the
  736.        next function.
  737.  
  738.        If a macro contains a function that brings up a {COMMO} window
  739.        (Dialing Directory, Capture File Options, etc.), then [Esc] will
  740.        exit the window and processing continues with the next function.  To
  741.        terminate macro processing from a window, press [Ctrl-Break].
  742.  
  743.        NOTE:  The SETEsc function may be used to help prevent accidental
  744.        termination of macros.
  745.  
  746.  
  747.        =======================================
  748.        Description of Functions (Alphabetical)
  749.        =======================================
  750.  
  751.        The purpose of this section is to show the syntax of each function
  752.        and the meaning of its arguments through examples.  All functions
  753.        are listed here, but details on functions which are also default key
  754.        commands are found in COMMO.DOC under "{COMMO} Key Commands."
  755.  
  756.        Function names are shown with their four-letter abbreviations in
  757.        uppercase.
  758.  
  759.        For consistency, the following conventions are used in many
  760.        functions:
  761.  
  762.           "y" or "yes" is used to indicate "yes", "on",  "open",  etc.
  763.           "n" or "no"  is used to indicate "no",  "off", "close", etc.
  764.  
  765.  
  766.  
  767.                    {COMMO} (tm)  Macro Programming Guide            page 10
  768.  
  769.  
  770.  
  771.        ABAUd
  772.        -----
  773.        Default key: none
  774.        Description: Set AutoBaud toggle.
  775.  
  776.        Examples:
  777.  
  778.           {abaud}             Toggle AutoBaud on/off
  779.           {abaud y}           Turn on AutoBaud     
  780.           {abaud n}           Turn off AutoBaud
  781.  
  782.  
  783.        ALARm
  784.        -----
  785.        Default key: none
  786.        Description: Ring the alarm.
  787.  
  788.        Examples:
  789.  
  790.           {alarm}             Ring alarm, use ring count in Setup File.
  791.           {alarm 2}           Ring alarm 2 times.
  792.  
  793.        {COMMO} will wait until the alarm has stopped ringing before
  794.        proceeding to the next macro function (the alarm may be terminated
  795.        early by pressing a key).
  796.  
  797.  
  798.        ASCIiup
  799.        -------
  800.        Default key: Alt-A
  801.        Description: Upload an ASCII (text) file.
  802.  
  803.        General form:
  804.  
  805.           {ASCIiup pathname[\],pace}
  806.  
  807.                pathname       The complete path and filename (if the path
  808.                               is absent, the current directory will be
  809.                               used). 
  810.  
  811.                               If a "\" is placed at the end of the
  812.                               pathname, the path will appear as a prompt in
  813.                               the ASCII Upload window.
  814.  
  815.                pace           The pacing character to be used.
  816.  
  817.        Switches:
  818.  
  819.                E1 or E   Expand blank lines.  A space will be sent when a
  820.                          zero-character line is encountered.
  821.  
  822.  
  823.  
  824.                    {COMMO} (tm)  Macro Programming Guide            page 11
  825.  
  826.  
  827.                E0        Do not expand blank lines.
  828.  
  829.                S1 or S   Strip linefeeds from outgoing text.
  830.  
  831.                S0        Do not strip linefeeds.
  832.  
  833.                          If a switch is absent, the current setting of the
  834.                          toggle will be used.  The toggles can be set in
  835.                          the Setup File or by using the Alt-T key command.
  836.  
  837.                          Switches apply to the current function only and do
  838.                          not affect the setting of the toggles.
  839.  
  840.        Examples:    
  841.  
  842.           {asci}                        Open ASCII Upload window.
  843.  
  844.           {asci-S}                      Open ASCII Upload window, strip
  845.                                         linefeeds when file is sent.
  846.  
  847.           {asci %uldir%\}               Open ASCII Upload window, prompt
  848.                                         with the current value of the
  849.                                         variable "uldir".
  850.  
  851.           {asci c:\msgs\file.xyz,:}     Upload "file.xyz."  Use ":" for
  852.                                         pacing.
  853.  
  854.           {asci-E0 c:\msgs\file.xyz}    Upload "file.xyz."  Use current
  855.                                         pacing character, do not expand
  856.                                         blank lines.
  857.  
  858.           {asci c:\msgs\file.xyz,}      Upload "file.xyz."  Do not use
  859.                                         pacing.
  860.  
  861.           {asci ,?}                     Set current pacing character to "?"
  862.  
  863.           {asci ,}                      Set current pacing to "no" pacing.
  864.  
  865.        The pacing character may be entered according to the rules in
  866.        Appendix D "ASCII Character Representation."  For example, "^m" or
  867.        "|" may be used to represent the carriage return.
  868.  
  869.  
  870.        AUTO
  871.        ----
  872.        Default key: none
  873.        Description: Maintain Auto Receive strings.
  874.  
  875.        General form:
  876.  
  877.           {AUTO label,string}
  878.  
  879.  
  880.  
  881.                    {COMMO} (tm)  Macro Programming Guide            page 12
  882.  
  883.  
  884.                label          Label to GOTO when the string is received.
  885.                string         String to look for, may be up to 32
  886.                               characters.
  887.  
  888.        Examples:
  889.  
  890.           {auto}                   Clear all Auto Receive strings.
  891.           {auto zmodem,^XB00}      Zmodem Auto Receive string.
  892.  
  893.        Note that only 8 Auto Receive strings may be in effect at the same
  894.        time (including any strings defined in the Setup File).  Use this
  895.        function with no arguments to clear all strings when necessary.
  896.  
  897.  
  898.        BEEP
  899.        ----
  900.        Default key: none
  901.        Description: Sound a beep.
  902.  
  903.        Example:
  904.  
  905.           {beep}              No arguments.
  906.  
  907.  
  908.        BREAk
  909.        -----
  910.        Default key: Alt-B
  911.        Description: Send a break.
  912.  
  913.        Example:
  914.  
  915.           {break}             No arguments.
  916.  
  917.  
  918.        CALL
  919.        ----
  920.        Default key: none
  921.        Description: Execute a macro subroutine.
  922.  
  923.        Example:
  924.  
  925.           {call abc}          Execute subroutine abc.
  926.  
  927.        CALL will push the location following the CALL function onto the
  928.        macro stack, then it will GOTO the label given in the argument. 
  929.        When a RETUrn is executed, the location will be popped and control
  930.        will return to the function following the CALL.
  931.  
  932.        Note that macros may be nested up to 32 deep.
  933.  
  934.        See also RETUrn, PUSHstack, POPStack.
  935.  
  936.  
  937.  
  938.                    {COMMO} (tm)  Macro Programming Guide            page 13
  939.  
  940.  
  941.  
  942.        CAPMode
  943.        -------
  944.        Default key: none
  945.        Description: Set Capture Mode.
  946.  
  947.        Examples:
  948.  
  949.           {capmode screen}         Set Capture Mode to SCREEN.
  950.           {capmode filter}         Set Capture Mode to FILTER.
  951.           {capmode raw}            Set Capture Mode to RAW.
  952.  
  953.        See also CAPTure.
  954.  
  955.  
  956.        CAPTure
  957.        -------
  958.        Default key: Alt-1
  959.        Description: Capture File Options.
  960.  
  961.        Examples:
  962.  
  963.           {capture}                     Open Capture File Options window.
  964.  
  965.           {capture y}                   Open current Capture File.
  966.  
  967.           {capture n}                   Close current Capture File.
  968.  
  969.           {capt y,c:\commo\file.xyz}    Open indicated Capture File.
  970.  
  971.           {capt n,c:\dl\newfile.cap}    Close current Capture File, set new
  972.                                         file as indicated.
  973.  
  974.        NOTE:  The current Capture File will always be closed when a new
  975.        file is opened.
  976.  
  977.        See also CAPMode.
  978.  
  979.  
  980.        CHATmode
  981.        --------
  982.        Default key: Alt-- (Alt minus)
  983.        Description: Set Chat Mode toggle.
  984.  
  985.        Examples:
  986.  
  987.           {chat}              Toggle Chat Mode on/off.
  988.           {chat y}            Turn on Chat Mode.
  989.           {chat n}            Turn off Chat Mode.
  990.  
  991.  
  992.  
  993.                    {COMMO} (tm)  Macro Programming Guide            page 14
  994.  
  995.  
  996.        CLEAr
  997.        -----
  998.        Default key: Alt-C
  999.        Description: Clear Terminal Screen to default colors.
  1000.  
  1001.        Example:
  1002.  
  1003.           {clear}             No arguments.
  1004.  
  1005.  
  1006.        COMPare
  1007.        -------
  1008.        Default key: none
  1009.        Description: Compare a string or numeric variable.
  1010.  
  1011.        General form:
  1012.  
  1013.           {COMPare name,string}
  1014.  
  1015.                name           The name of a variable.
  1016.  
  1017.                string         A string of ASCII characters.
  1018.  
  1019.        Examples:
  1020.  
  1021.           {comp pword,aardvark}         Test if the variable "pword" is set
  1022.                                         to "aardvark."
  1023.  
  1024.           {comp pword}                  Test if "pword" is null.
  1025.           {comp pword,}                 Test if "pword" is null.
  1026.  
  1027.           {comp nmbr,5}                 Compare a numeric variable.
  1028.  
  1029.           {comp abc,%xyz}               Test if the variable "abc" is equal
  1030.                                         to the variable "xyz."
  1031.  
  1032.        A numeric variable is a string of ASCII digits, 0-9, forming a
  1033.        positive integer in the range from 0 to 65535.  If the number is
  1034.        outside this range or contains non-numeric characters, the results
  1035.        of the compare will be unpredictable.
  1036.  
  1037.        COMPare will set flags which can be tested with the IFCOndition
  1038.        function.
  1039.  
  1040.           The Condition Flag will be set to "true" if the two arguments are
  1041.           identical strings (case is ignored).  Otherwise it will be set to
  1042.           "false."
  1043.  
  1044.           The Numeric Flag will be set to "equal", "less than" or "greater
  1045.           than."  This flag is unpredictable unless both arguments are
  1046.           valid numerics.
  1047.  
  1048.  
  1049.  
  1050.                    {COMMO} (tm)  Macro Programming Guide            page 15
  1051.  
  1052.  
  1053.        A variable may be tested for being null (no entry in variable space)
  1054.        by omitting the second argument (or by comparing to a null
  1055.        variable).
  1056.  
  1057.        See also IFCOndition.
  1058.  
  1059.  
  1060.        CURSor
  1061.        ------
  1062.        Default key: none
  1063.        Description: Terminal Screen cursor on/off.
  1064.  
  1065.        Examples:
  1066.  
  1067.           {cursor}            Toggle Terminal cursor on/off.
  1068.           {curs y}            Turn on Terminal Screen cursor.
  1069.           {curs n}            Turn off Terminal Screen cursor.
  1070.  
  1071.  
  1072.        DECRement
  1073.        ---------
  1074.        Default keys: none
  1075.        Description: Subtract an amount from a numeric variable.
  1076.  
  1077.        Examples:
  1078.  
  1079.           {decr number,200}   Subtract 200 from "number".
  1080.           {decr count}        Subtract 1 from the variable "count".
  1081.  
  1082.        Numeric variables and the amounts to be subtracted may range from 0
  1083.        to 65535.  The default amount is 1.  Results less than 0 will be set
  1084.        to 0.
  1085.  
  1086.        If the variable is not numeric, the results will be unpredictable.
  1087.  
  1088.        See also INCRement.
  1089.  
  1090.  
  1091.        DIAL
  1092.        ----
  1093.        Default keys: Alt-D, Alt-N
  1094.        Description: Dialing Directory.
  1095.  
  1096.        General form:
  1097.  
  1098.           {DIAL tries,label}
  1099.  
  1100.                tries     The maximum number of dialing tries.  If no
  1101.                          connection is established when the try count is
  1102.                          exhausted, the macro in the second argument will
  1103.                          be started.  May be 0 to 999.  "0" means
  1104.                          unlimited.  Default is 0.
  1105.  
  1106.  
  1107.  
  1108.                    {COMMO} (tm)  Macro Programming Guide            page 16
  1109.  
  1110.  
  1111.  
  1112.                label     A macro to GOTO if the try count in the first
  1113.                          argument is exhausted.  If no macro is specified
  1114.                          or if the macro label is invalid, control will
  1115.                          pass to the next function.  Default is none.
  1116.  
  1117.        Switches:
  1118.  
  1119.                C1 or C   Specifies that a Linked Macro (from the Dialing
  1120.                          Directory) will be entered via CALL (instead of
  1121.                          GOTO).  When the Linked Macro executes a RETUrn,
  1122.                          control returns to the DIAL function and Multi
  1123.                          Number Dialing will resume (see below).
  1124.  
  1125.                C0        Enter the Linked Macro via GOTO (default).
  1126.  
  1127.  
  1128.        Examples:
  1129.  
  1130.           {dial}              Open Dialing Directory window (like Alt-D).
  1131.  
  1132.           {dial ,}            Multi Number Dial (like Alt-N).
  1133.  
  1134.           {dial 25,abc}       Multi Number Dial with try count.
  1135.  
  1136.           {dial-C ,}          Multi Number Dial, CALL Linked Macros.
  1137.  
  1138.  
  1139.        Marked numbers will be redialed in sequence.  Numbers may be marked
  1140.        in one of several ways:
  1141.  
  1142.           1)   Manually in the Dialing Directory window.
  1143.           2)   By placing Dialing Strings on the {COMMO} command line.
  1144.           3)   Using the MARK macro function.
  1145.  
  1146.        If a connection occurs and a valid Linked Macro is specified in the
  1147.        Dialing Directory, the macro will be started (via GOTO unless the
  1148.        "C" switch is present).  If no macro is specified in the Dialing
  1149.        Directory, control is passed to the next function.
  1150.  
  1151.  
  1152.        To automatically resume Multi Number Dialing at the end of a Linked
  1153.        Macro, use one of the following methods.
  1154.  
  1155.           1)   Execute the following sequence at the end of each Linked
  1156.                Macro (or GOTO it):
  1157.  
  1158.                ... {setlook 60} {lookfor ^jNO CARRIER^m} {dial ,} {}
  1159.  
  1160.                This allows more than one system to be called without
  1161.                operator intervention.  This method will also work when
  1162.  
  1163.  
  1164.  
  1165.                    {COMMO} (tm)  Macro Programming Guide            page 17
  1166.  
  1167.  
  1168.                using Dialing Strings on the command line or when pressing
  1169.                Alt-U after marking systems for dialing.
  1170.  
  1171.           2)   Use the "C" switch in the DIAL function.  Each Linked Macro
  1172.                should end with a RETUrn which will transfer control back to
  1173.                the DIAL.  When all numbers have been called, the DIAL will
  1174.                pass control to the next function in sequence.
  1175.  
  1176.        See also: MARK, UNMArk.
  1177.  
  1178.  
  1179.        DISPlay
  1180.        -------
  1181.        Default key: none
  1182.        Description: Display a string to the screen.
  1183.  
  1184.        General form:
  1185.  
  1186.           {DISPlay row,col,attr,string}
  1187.  
  1188.                row       The row where the string will display.
  1189.                col       The column where the string will display.
  1190.                attr      The attribute (colors) of the string.
  1191.                string    The text of the string (no quotes).
  1192.  
  1193.        Examples:
  1194.  
  1195.           {display 12,20,17,Hello!}     Display "Hello!" at row 12, column
  1196.                                         20.  Colors are white on blue.
  1197.  
  1198.           {disp ,,,Hello, again.^m^j}   Display "Hello, again." at the
  1199.                                         current cursor using the current
  1200.                                         attribute, followed by a cr/lf.
  1201.  
  1202.           {disp 3,40}                   Position the cursor at row 3,
  1203.                                         column 40.
  1204.  
  1205.        The attribute is specified in the same manner as the colors in the
  1206.        Setup File (press F10 in the Internal Editor to display the Color
  1207.        Chart).
  1208.  
  1209.        Setting background colors to high intensity values will cause
  1210.        blinking (for example, using "9" instead of "1" will still give a
  1211.        blue background but the foreground character will blink).  
  1212.  
  1213.        After the string is displayed, the previous Terminal Screen
  1214.        attribute will be restored.
  1215.  
  1216.        Note that translation is performed on the string according to the
  1217.        rules in Appendix D.
  1218.  
  1219.  
  1220.  
  1221.                    {COMMO} (tm)  Macro Programming Guide            page 18
  1222.  
  1223.  
  1224.        DOORway
  1225.        -------
  1226.        Default key: Alt-=
  1227.        Description: Toggle Doorway Mode.
  1228.  
  1229.        Switches:
  1230.  
  1231.                S1 or S   Status Line on when entering Doorway Mode.
  1232.  
  1233.                S0        Status Line off (default).
  1234.  
  1235.                M0        Do not display Doorway enter/exit messages.
  1236.  
  1237.                M1        Display enter/exit messages (default).
  1238.  
  1239.        Examples:
  1240.  
  1241.           {doorway}           Toggle Doorway Mode on/off.
  1242.           {door-S}            Status Line on when entering Doorway Mode.
  1243.           {doorway-M0}        Do not display enter/exit messages.
  1244.  
  1245.        The "S" switch is ignored when exiting Doorway Mode (the Status Line
  1246.        will be restored to its prior state).
  1247.  
  1248.  
  1249.        DPARms
  1250.        -----
  1251.        Default key: Alt-P
  1252.        Description: Set Default Dialing Terminal Parameters
  1253.  
  1254.        General form:
  1255.  
  1256.           {DPARms speed,format,comport,terminal-type,delay}
  1257.  
  1258.                speed          The bps rate: 2400, 9600, etc.
  1259.                format         The data format: 8n1, 7e1, etc.
  1260.                comport        The serial port number: 1, 2, 3 or 4.
  1261.                terminal       The terminal-type: A, V or T.
  1262.                delay          The inter-character delay factor: 0-999.
  1263.  
  1264.        Examples:
  1265.  
  1266.           {dparms 2400,8,1,,20}    Set 2400 bps, 8n1, Com1, delay = 20.
  1267.  
  1268.           {dparms ,,4,V}           Set Com4 VT102.
  1269.  
  1270.           {dparms 19200,7o1}       Set 19200 bps, 7o1.
  1271.  
  1272.        Note that omitted parameters are not changed.
  1273.  
  1274.        See also PARMs.
  1275.  
  1276.  
  1277.  
  1278.                    {COMMO} (tm)  Macro Programming Guide            page 19
  1279.  
  1280.  
  1281.  
  1282.        EDIT
  1283.        ----
  1284.        Default key: none
  1285.        Description: Edit an external file.
  1286.  
  1287.        Example:
  1288.  
  1289.           {edit c:\autoexec.bat}        Edit AUTOEXEC.BAT file.
  1290.  
  1291.        EDIT may be used to edit any text file up to 64k in length.  The
  1292.        rules are the same as for editing a support file with the Internal
  1293.        Editor.
  1294.  
  1295.        TIPS on using EDIT:
  1296.  
  1297.        >  Control characters (below ASCII 28) may not be typed.
  1298.  
  1299.        >  Blank lines at the end of the file and end-of-file marks will be
  1300.           removed prior to editing.
  1301.  
  1302.        >  The file will be "saved in place" (no backup) when Alt-F or Esc
  1303.           is pressed.
  1304.  
  1305.  
  1306.        ELAPse
  1307.        ------
  1308.        Default key: none
  1309.        Description: Reset the elapsed timer to 0 minutes.
  1310.  
  1311.        Example:
  1312.  
  1313.           {elap}              No arguments.
  1314.  
  1315.        The elapsed timer is automatically reset whenever dialing begins and
  1316.        when a connection is made with a remote system.
  1317.  
  1318.  
  1319.        EXECute
  1320.        -------
  1321.        Default key: none
  1322.        Description: Execute a DOS command.
  1323.  
  1324.        Switches:
  1325.  
  1326.                A1 or A   Sound the alarm at the end of command execution.
  1327.  
  1328.                A0        Do not sound the alarm (default).
  1329.  
  1330.                D1 or D   Execute an external program directly, without use
  1331.                          of the command processor (see details below).
  1332.  
  1333.  
  1334.  
  1335.                    {COMMO} (tm)  Macro Programming Guide            page 20
  1336.  
  1337.  
  1338.                D0        Use the command processor (default).
  1339.  
  1340.                N1 or N   Do not clear the screen before execution.  This is
  1341.                          useful when running programs that clear or rewrite
  1342.                          the screen.  Also for simple DOS functions like
  1343.                          changing directories, renaming files, etc.  
  1344.  
  1345.                N0        Clear the screen (default).
  1346.  
  1347.                W         Wait for a key press before restoring the Terminal
  1348.                          Screen.  This is useful if you need to see the
  1349.                          results of the command execution.
  1350.  
  1351.                Wn        Wait for "n" seconds, "n" may range from 0 to 999. 
  1352.                          Press a key to cancel the wait.
  1353.  
  1354.                          Note:  Default (no "W" switch) is no wait.
  1355.  
  1356.        Examples:
  1357.  
  1358.           {exec-AW3 dsz port %_por speed %_spe sz %uldir%\%file}
  1359.  
  1360.                {COMMO} will prepare the DSZ command by expanding the "%"
  1361.                variables, then call DOS to execute the program.
  1362.  
  1363.                See the section "Macro Variables" for complete details on
  1364.                variable substitution.
  1365.  
  1366.                The alarm will sound at completion (the "A" switch) and
  1367.                {COMMO} will wait for three seconds (the "W3" switch) before
  1368.                restoring the Terminal Screen.
  1369.  
  1370.           {execute-DN c:\utils\list.com %_cap}
  1371.  
  1372.                The LIST program will be directly executed with the current
  1373.                Capture File pathname as a command line argument.  The
  1374.                screen will not be cleared (LIST will rewrite the screen). 
  1375.                {COMMO} will return immediately to the Terminal Screen when
  1376.                LIST exits.
  1377.  
  1378.        The EXECute function enables you to "build" a command to be executed
  1379.        by DOS.  The DOS command processor (COMMAND.COM) is normally used
  1380.        (see below), which implies that you may specify any command as you
  1381.        would type it from the DOS prompt.
  1382.  
  1383.        Thus you can execute batch files and internal DOS commands (REN,
  1384.        DEL, etc.).  Also you can omit command paths and extensions (if the
  1385.        command is in your PATH or in the current directory).
  1386.  
  1387.        Character translation is performed in the EXECute function.  This
  1388.        enables you to specify control characters.  For example:
  1389.  
  1390.  
  1391.  
  1392.                    {COMMO} (tm)  Macro Programming Guide            page 21
  1393.  
  1394.  
  1395.                {exec echo ^L> prn}   Send a formfeed to the printer
  1396.  
  1397.        See Appendix D for details on translation.  Note that the vertical
  1398.        bar "|" is NOT translated to a carriage return in an EXECute
  1399.        function.  
  1400.  
  1401.  
  1402.        Using the Direct Switch: exec-D
  1403.        -------------------------------
  1404.  
  1405.        Use this switch to execute .EXE and .COM programs without the use of
  1406.        the command processor (usually COMMAND.COM).
  1407.  
  1408.        The program's Exit Code (called ERRORLEVEL in batch files) is saved
  1409.        and may be tested with the IFERrorlevel function.  The Exit Code is
  1410.        also available in the variable "_err".
  1411.  
  1412.        There are several advantages to using the "D" switch:
  1413.  
  1414.        1) Only the memory needed to run the program is required (the
  1415.           command processor requires that about 32k be available, even if
  1416.           the program being run is much smaller).
  1417.  
  1418.        2) About 4k of memory is saved by not having a copy of the command
  1419.           processor resident when the program is running.
  1420.  
  1421.        3) The program executes faster, since COMMAND.COM is not loaded from
  1422.           disk.
  1423.  
  1424.        4) The program's Exit Code is preserved and may be tested with the
  1425.           {COMMO} IFERrorlevel function.
  1426.  
  1427.        Two important rules must be followed when using the "D" switch:
  1428.  
  1429.        1) The full pathname of the program file must be specified,
  1430.           including the path where the file resides on disk and the file
  1431.           extension.  For example:
  1432.  
  1433.                {exec-D c:\util\list.com file.txt}
  1434.  
  1435.        2) Only .EXE and .COM files may be run (batch files and internal DOS
  1436.           commands cannot be executed without the command processor).
  1437.  
  1438.  
  1439.  
  1440.                    {COMMO} (tm)  Macro Programming Guide            page 22
  1441.  
  1442.  
  1443.        EXECute Preview Mode
  1444.        --------------------
  1445.  
  1446.        Use the Set Toggles key command, Alt-T, to turn on "EXECute Preview
  1447.        Mode."  This mode is used to test your DOS commands and performs the
  1448.        following steps for each EXECute function:
  1449.  
  1450.        1) The command will be displayed after expanding variables and
  1451.           translating control characters.
  1452.  
  1453.        2) You will be given an opportunity to cancel the command before it
  1454.           is executed.
  1455.  
  1456.        3) Following execution {COMMO} will wait before restoring the
  1457.           Terminal Screen.  This lets you see any error messages that the
  1458.           command may have displayed.
  1459.  
  1460.  
  1461.        EXIT
  1462.        ----
  1463.        Default key: Alt-X
  1464.        Description: Exit {COMMO}.
  1465.  
  1466.        General form:
  1467.  
  1468.           {EXIT number}
  1469.  
  1470.                number    The return code to be passed to DOS.  It may be
  1471.                          tested with the IF ERRORLEVEL batch command. 
  1472.                          Range is 0 to 255.
  1473.  
  1474.        Switches:
  1475.  
  1476.                D1 or D   Drop DTR and RTS.  Dropping DTR will cause the
  1477.                          modem to disconnect if it has been properly
  1478.                          initialized.  See Appendix A.
  1479.  
  1480.                D0        Do not drop DTR and RTS.
  1481.  
  1482.                          If the switch is absent, the current setting of
  1483.                          the toggle will be used.  The toggle can be set in
  1484.                          the Setup File or by using the Alt-T key command.
  1485.  
  1486.        Examples:
  1487.  
  1488.           {exit}              No arguments (return code = 0).
  1489.           {exit 3}            With return code.
  1490.           {exit-D}            Drop DTR and RTS.
  1491.  
  1492.  
  1493.  
  1494.                    {COMMO} (tm)  Macro Programming Guide            page 23
  1495.  
  1496.  
  1497.        GETString
  1498.        ---------
  1499.        Default key: none
  1500.        Description: Input a string from the modem to a variable.
  1501.  
  1502.        General form:
  1503.  
  1504.           {GETString name,count,label}
  1505.  
  1506.                name      The name of the variable to which the string will
  1507.                          be assigned.
  1508.  
  1509.                count     The maximum number of data characters allowed.  A
  1510.                          carriage return will always terminate input.  May
  1511.                          be 1 to 240.  Default is 240.
  1512.  
  1513.                label     A macro to GOTO if a carriage return is received
  1514.                          and no characters have been entered (the string
  1515.                          will be assigned as null).  If this argument is
  1516.                          omitted, control will pass to the next function.
  1517.  
  1518.        Switches:
  1519.  
  1520.                A1 or A   "Append" mode.  Characters will be appended to the
  1521.                          variable.  If the current length of the variable
  1522.                          is greater than the count in the second argument,
  1523.                          a count of 240 will be assumed.
  1524.  
  1525.                A0        The variable will be overwritten (default).
  1526.  
  1527.                H1 or H   "Hotkey" mode.  When the maximum number of
  1528.                          characters has been entered, control will pass to
  1529.                          the next function.
  1530.  
  1531.                H0        Ignore all input after the maximum has been
  1532.                          entered, except backspace and carriage return
  1533.                          (default).
  1534.  
  1535.                P1 or P   "Password" mode.  Asterisks will be echoed to the
  1536.                          remote and local terminals in place of the
  1537.                          received characters (Echo Status will be honored,
  1538.                          see SETGet).
  1539.  
  1540.                P0        Characters are echoed as received (default).
  1541.  
  1542.        Examples:
  1543.  
  1544.           {setget 60,timeout,y,^m^j}         Set GETString parameters.
  1545.           {gets fonum,12,badinput}           Get input to "fonum."
  1546.  
  1547.           {gets-p pword,20}                  Get a password.
  1548.  
  1549.  
  1550.  
  1551.                    {COMMO} (tm)  Macro Programming Guide            page 24
  1552.  
  1553.  
  1554.  
  1555.        TIPS on using GETString:
  1556.  
  1557.        >  The only control characters allowed (below ASCII 28) are carriage
  1558.           return (ASCII 13) and backspace (ASCII 8).  Other control
  1559.           characters should be entered as ^J for linefeed, etc.  See
  1560.           Appendix D.
  1561.  
  1562.        >  Destructive backspace processing is supported for editing
  1563.           purposes.
  1564.  
  1565.        >  GETString supports "tandem" input.  Characters entered at either
  1566.           end will be input to the string (and displayed at both ends if
  1567.           echo is on (see SETGet).  Turn on Local Echo to see text locally
  1568.           that is sent to the remote with SEND, ASCIiup, etc.
  1569.  
  1570.        >  Use the "H" switch and a character count of 1 for "hotkeys."
  1571.  
  1572.        >  Turn off echo in the SETGet while waiting for the modem to answer
  1573.           (in host mode).  Some modems react poorly to characters being
  1574.           echoed when they are generating a response (such as "RING").
  1575.  
  1576.        >  Incoming characters displayed during a GETString function are not
  1577.           seen by subsequent GOLOok/LOOKfor functions.
  1578.  
  1579.        See also SETGet.
  1580.  
  1581.  
  1582.        GOLOok
  1583.        ------
  1584.        Default key: none
  1585.        Description: Set a macro label to GOTO if a string comes in during a
  1586.                     subsequent LOOKfor function.
  1587.  
  1588.        Example construct:
  1589.  
  1590.                     {setlook 60,hng,3,n|}
  1591.                       ...
  1592.  
  1593.           {:mac}    {golook aaa,string1}
  1594.                     {golook ,string2}
  1595.                     {golook bbb,string3}
  1596.                     {lookfor string4} {send answer4|} {goto ccc}
  1597.  
  1598.           {:aaa}    {send answer1|} {goto mac}
  1599.           {:bbb}    {call xyz} {goto mac}
  1600.  
  1601.           {:ccc}      ...
  1602.  
  1603.        In this example {COMMO} will look for four strings.  When any string
  1604.        comes in, the LOOKfor is terminated (all strings are cancelled).  It
  1605.        may be set up again by going back to "mac."
  1606.  
  1607.  
  1608.  
  1609.                    {COMMO} (tm)  Macro Programming Guide            page 25
  1610.  
  1611.  
  1612.  
  1613.        The GOLOok functions for string1 and string3 will GOTO "aaa" or
  1614.        "bbb" respectively if one of the strings comes in.  In the example
  1615.        control returns to "mac" and the four strings will continue to be
  1616.        looked for.
  1617.  
  1618.        The GOLOok for string2 has a null label and control will pass to the
  1619.        function following the LOOKfor if the string comes in.  The "," must
  1620.        be present.
  1621.  
  1622.        If string4 comes in, control will also pass to the function
  1623.        following the LOOKfor.
  1624.  
  1625.        TIPS on using the GOLOok function:
  1626.  
  1627.        >  GOLOok functions should immediately precede a LOOKfor (no string
  1628.           compares actually occur until the LOOKfor executes).  Up to 15
  1629.           GOLOoks may be used for a total of up to 16 strings to scan for.
  1630.  
  1631.        >  If two or more strings cause a match at the same time, the LAST
  1632.           such string listed is the one acted upon.  For example, when
  1633.           "abcdef" and "def" are listed and "abcdef" comes in.
  1634.  
  1635.        >  Since the LOOKfor is terminated whenever any of the strings come
  1636.           in (or when the LOOKfor timeout expires), this structure is
  1637.           unrestricted -- that is, CALLs, GOTOs, other GOLOok/LOOKfor
  1638.           constructs, etc., may be used freely in any of the branches.
  1639.  
  1640.        >  See the PUSHstack function for an example showing how to improve
  1641.           the structure of the GOLOok/LOOKfor sequence.
  1642.  
  1643.        See also "TIPS on creating LOOKfor strings" in the section
  1644.        describing the LOOKfor function.
  1645.  
  1646.        See also: LOOKfor, SETLook, PUSHstack, POPStack.
  1647.  
  1648.  
  1649.        GOTO
  1650.        ----
  1651.        Default key: none
  1652.        Description: Transfer control to a macro label.
  1653.  
  1654.        Example:
  1655.  
  1656.           {goto mail_run}          Control transferred to label "mail_run".
  1657.  
  1658.  
  1659.        HANGup
  1660.        ------
  1661.        Default key: Alt-H
  1662.        Description: Disconnect by dropping DTR.
  1663.  
  1664.  
  1665.  
  1666.                    {COMMO} (tm)  Macro Programming Guide            page 26
  1667.  
  1668.  
  1669.        Examples:
  1670.  
  1671.           {hangup}            Prompt user for disconnect.
  1672.           {hangup y}          Disconnect without prompting.
  1673.  
  1674.  
  1675.        HELP
  1676.        ----
  1677.        Default key: F1
  1678.        Description: Open Online Help window.
  1679.  
  1680.        Example:
  1681.  
  1682.           {help}              Display key command help
  1683.           {help x}            Display topic "TX"
  1684.  
  1685.        Any single character may be specified.  {COMMO} will prefix it a "T"
  1686.        and search for the topic code.  You may create your own Online Help
  1687.        file.  See "Modifying the Help File" in COMMO.DOC.
  1688.  
  1689.  
  1690.        HFLOw
  1691.        -----
  1692.        Default key: none
  1693.        Description: Set Hardware Flow Control toggle.
  1694.  
  1695.        Examples:
  1696.  
  1697.           {hflow}             Toggle Hardware Flow Control on/off.
  1698.           {hflow y}           Turn on Hardware Flow Control.
  1699.           {hflow n}           Turn off Hardware Flow Control.
  1700.  
  1701.  
  1702.        HOLD
  1703.        ----
  1704.        Default key: none
  1705.        Description: Hold until specified time of day (24 hour format).
  1706.  
  1707.        Examples:
  1708.  
  1709.           {hold 3:30}         Hold until 3:30 am.
  1710.           {hold 16:10}        Hold until 4:10 pm.
  1711.           {hold 0:00}         Hold until midnight.
  1712.  
  1713.        NOTE:  Incoming characters displayed during a HOLD function are not
  1714.        seen by subsequent GOLOok/LOOKfor functions.
  1715.  
  1716.  
  1717.        IFCArrier
  1718.        ---------
  1719.        Default key: none
  1720.        Description: Test for presence of carrier detect signal.
  1721.  
  1722.  
  1723.  
  1724.                    {COMMO} (tm)  Macro Programming Guide            page 27
  1725.  
  1726.  
  1727.  
  1728.        General form:
  1729.  
  1730.           {IFCArrier true,false}
  1731.  
  1732.                true           A label to GOTO if carrier is detected.
  1733.  
  1734.                false          A label to GOTO if carrier is not detected.
  1735.  
  1736.        NOTE:  The default when either label is omitted is to pass control
  1737.        to the next function.
  1738.  
  1739.        Example:
  1740.  
  1741.                {ifcarrier c10,c20}
  1742.  
  1743.        Tip on using IFCArrier:
  1744.  
  1745.        >  When using a loop to wait for a change in carrier detect, you
  1746.           should include a short pause in the loop if you want characters
  1747.           to display.  The following sequence will display incoming
  1748.           characters while waiting for carrier detect to drop:
  1749.  
  1750.                ... {:cd1} {pause 1} {ifcarrier cd1} ...
  1751.  
  1752.  
  1753.        IFCOndition
  1754.        -----------
  1755.        Default key: none
  1756.        Description: Test for conditions set by other functions.
  1757.  
  1758.        General form:
  1759.  
  1760.           {IFCOndition true,false}
  1761.  
  1762.                true      A label to GOTO if the Condition Flag is true.
  1763.  
  1764.                false     A label to GOTO if the Condition Flag is false.
  1765.  
  1766.        NOTE:  The default when either label is omitted is to pass control
  1767.        to the next function.
  1768.  
  1769.        Switches:
  1770.  
  1771.                none      Test the current state of the Condition Flag.
  1772.  
  1773.                E1 or E   Test for numeric equality.  A numeric string
  1774.                          contains only the digits 0-9 and is in the range 0
  1775.                          to 65535.
  1776.  
  1777.                L1 or L   Numeric test -- if first COMPare argument is less
  1778.                          than the second.
  1779.  
  1780.  
  1781.  
  1782.                    {COMMO} (tm)  Macro Programming Guide            page 28
  1783.  
  1784.  
  1785.  
  1786.                G1 or G   Numeric test -- if first COMPare argument is
  1787.                          greater than the second.
  1788.  
  1789.        Examples:
  1790.  
  1791.           {compare var1,message}        Compare and set Condition Flag.
  1792.           {ifcondit match,nomatch}      GOTO "match" if the variable "var1"
  1793.                                         is set to "message," to "nomatch"
  1794.                                         if it is not.
  1795.  
  1796.           {compare value,200}           Compare and set conditions.
  1797.           {ifcon-GE toobig,aok}         GOTO "toobig" if "value" is greater
  1798.                                         than or equal to 200, else GOTO
  1799.                                         "aok."
  1800.  
  1801.           {instring zipcode,90}         Test if "zipcode" contains the
  1802.           {ifcon yes,no}                digits "90".  If "true" GOTO "yes",
  1803.                                         if "false" GOTO "no".
  1804.  
  1805.        Switches may be used in any combination.  If any numeric switches
  1806.        are present, the Condition Flag is not tested.
  1807.  
  1808.        The difference between testing for string equality and numeric
  1809.        equality is shown in this example:
  1810.  
  1811.           The strings "05" and "5" are different text strings, but are
  1812.           numerically equal.
  1813.  
  1814.  
  1815.        IFERrorlevel
  1816.        ------------
  1817.        Default key: none
  1818.        Description: Test the Exit Code set by certain functions.
  1819.  
  1820.        General form:
  1821.  
  1822.           {IFERrorlevel number,true,false}
  1823.  
  1824.                number         A number from 0 to 255.  It will be compared
  1825.                               to the last Exit Code that was set.
  1826.  
  1827.                true           A label to GOTO if the Exit Code is greater
  1828.                               than or equal to "number."
  1829.  
  1830.                false          A label to GOTO if the Exit Code is less than
  1831.                               "number."
  1832.  
  1833.        NOTE:  The default when either label is omitted is to pass control
  1834.        to the next function.
  1835.  
  1836.        Example:
  1837.  
  1838.  
  1839.  
  1840.                    {COMMO} (tm)  Macro Programming Guide            page 29
  1841.  
  1842.  
  1843.  
  1844.                {iferror 1,abc,def}      GOTO "abc" if Exit Code is greater
  1845.                                         than or equal to 1.  Else GOTO def.
  1846.  
  1847.        TIPS on using IFERrorlevel:
  1848.  
  1849.        >  The Exit Code is set by certain functions (e.g., EXECute-D,
  1850.           SHELl, RXMOdem, SXMOdem) and should normally be tested
  1851.           immediately following execution of those functions.
  1852.  
  1853.        >  EXECute without the "D" switch or Shell to DOS will normally set
  1854.           the Exit Code to 0.
  1855.  
  1856.        >  Many programs return an Exit Code greater than 0 when the result
  1857.           is unsuccessful.  DSZ, for example, will return an Exit Code of 1
  1858.           if the file transfer has failed.
  1859.  
  1860.        >  The value of the Exit Code is also stored in the string variable
  1861.           "_err" and may be tested with COMPare.
  1862.  
  1863.  
  1864.        IFEXist
  1865.        -------
  1866.        Default key: none
  1867.        Description: Test for existence of a disk file or files.
  1868.  
  1869.        General form:
  1870.  
  1871.           {IFEXist pathname,true,false}
  1872.  
  1873.                pathname       A DOS pathname.  If the path is omitted, the
  1874.                               current directory will be used.  If wildcards
  1875.                               are used the "true" condition will hold if
  1876.                               any files match the specification.
  1877.  
  1878.                true           A label to GOTO if the file exists.
  1879.  
  1880.                false          A label to GOTO if no files match.
  1881.  
  1882.        NOTE:  The default when either label is omitted is to pass control
  1883.        to the next function.
  1884.  
  1885.        Examples:
  1886.  
  1887.           {ifex a:file.xyz,,m20}             GOTO "m20" if not found.
  1888.           {ifex c:\data\words.txt,345}       GOTO "345" if found.
  1889.           {ifex c:\ul\*.rep,a01,a02}         Using a wildcard.
  1890.  
  1891.  
  1892.  
  1893.                    {COMMO} (tm)  Macro Programming Guide            page 30
  1894.  
  1895.  
  1896.        INCRement
  1897.        ---------
  1898.        Default keys: none
  1899.        Description: Add an amount to a numeric variable.
  1900.  
  1901.        Examples:
  1902.  
  1903.           {incr number,1234}  Add 1234 to "number".
  1904.           {incr count}        Add 1 to the variable "count".
  1905.  
  1906.        Numeric variables and the amounts to be added may range from 0 to
  1907.        65535.  The default amount is 1.  Results greater than 65535 will be
  1908.        set to 65535.
  1909.  
  1910.        If the variable is not numeric, the results will be unpredictable.
  1911.  
  1912.        See also DECRement.
  1913.  
  1914.  
  1915.        INITmodem
  1916.        ---------
  1917.        Default key: Alt-O
  1918.        Description: Send Modem Initialization String.
  1919.  
  1920.        Example:
  1921.  
  1922.           {init}              No arguments
  1923.  
  1924.  
  1925.        INPUt
  1926.        -----
  1927.        Default key: none
  1928.        Description: Input a string from the keyboard.
  1929.  
  1930.        General form:
  1931.  
  1932.           {INPUt name,prompt}
  1933.  
  1934.                name      The name of a string variable.  The current value
  1935.                          of this variable will appear in the input line.
  1936.  
  1937.                prompt    A prompt string that will appear in the input
  1938.                          window border.
  1939.  
  1940.        Example:
  1941.  
  1942.           {input upfile,Enter a filename:}        Input a string to the
  1943.                                                   variable "upfile."
  1944.  
  1945.        If 0 data characters are entered, the variable will be set to null.
  1946.  
  1947.  
  1948.  
  1949.                    {COMMO} (tm)  Macro Programming Guide            page 31
  1950.  
  1951.  
  1952.        NOTE:  If Esc is pressed, macro processing will be terminated unless
  1953.        an exit label has been defined with SETEsc.
  1954.  
  1955.  
  1956.        INSTring
  1957.        --------
  1958.        Default key: none
  1959.        Description: Find a string within a string, return its position.
  1960.  
  1961.        General form:
  1962.  
  1963.           {INSTring name,string}
  1964.  
  1965.                name      The name of a variable (string to search in).
  1966.                string    The string to search for.
  1967.  
  1968.        Example:
  1969.  
  1970.           {inst line,abc}     The variable "line" is searched for the
  1971.                               string "abc".
  1972.  
  1973.        INSTring will set the following:
  1974.  
  1975.           1)   The Condition Flag will be set to "true" if the string is
  1976.                found, to "false" if the string is not found.  Test with
  1977.                IFCOndition, no switches.
  1978.  
  1979.           2)   The starting position of the string will be returned in the
  1980.                built-in variable "_pos" (first character is "1").  "_pos"
  1981.                will be set to zero if the string is not found.
  1982.  
  1983.  
  1984.        LENGth
  1985.        ------
  1986.        Default key: none
  1987.        Description: Determine the length of a string.
  1988.  
  1989.        Examples:
  1990.  
  1991.           {leng %line}             Find the length of the string in the
  1992.                                    variable "line".
  1993.  
  1994.           {leng %line1%%line2}     Find the combined length of "line1" and
  1995.                                    "line2".
  1996.  
  1997.        The length will be returned in the built-in variable "_len".  If the
  1998.        string is null, the length will be set to zero.
  1999.  
  2000.  
  2001.  
  2002.                    {COMMO} (tm)  Macro Programming Guide            page 32
  2003.  
  2004.  
  2005.        LIGHts
  2006.        ------
  2007.        Default key: Alt-0
  2008.        Description: Set Signal Lights toggle.
  2009.  
  2010.        Examples:
  2011.  
  2012.           {lights}            Toggle Signal Lights on/off.
  2013.           {lights y}          Turn on Signal Lights.
  2014.           {lights n}          Turn off Signal Lights.
  2015.  
  2016.  
  2017.        LOCAlecho
  2018.        ---------
  2019.        Default key: none
  2020.        Description: Set Local Echo toggle.
  2021.  
  2022.        Examples:
  2023.  
  2024.           {local}             Toggle Local Echo on/off.
  2025.           {local y}           Turn on Local Echo.
  2026.           {local n}           Turn off Local Echo.
  2027.  
  2028.  
  2029.        LOOKfor
  2030.        -------
  2031.        Default key: none
  2032.        Description: Look for a string in the modem input stream.
  2033.  
  2034.        Examples:
  2035.  
  2036.           {setlook 60,abc,4,n|}    Set parameters.
  2037.           {lookfor first name?}    Look for the string "first name?"
  2038.           {look ^(COMMO^)}         Look for the string "{COMMO}".
  2039.  
  2040.  
  2041.        Parameters controlling LOOKfor execution are set with the SETLook
  2042.        function, which should be executed before any LOOKfor functions. 
  2043.        See the description of the SETLook function for details.
  2044.  
  2045.        The LOOKfor function will scan for the requested string to appear,
  2046.        then macro execution will continue with the next function.
  2047.  
  2048.        Use the GOLOok function to scan simultaneously for up to 15
  2049.        additional strings during a LOOKfor.
  2050.  
  2051.        TIPS on creating LOOKfor (and GOLOok) strings:
  2052.  
  2053.        >  There should be just one space following the LOOKfor function
  2054.           name.  Any spaces beyond this point are part of the string.  The
  2055.           string ends at the right curly brace.
  2056.  
  2057.  
  2058.  
  2059.                    {COMMO} (tm)  Macro Programming Guide            page 33
  2060.  
  2061.  
  2062.        >  GOLOok and Auto Receive strings begin after the comma following
  2063.           the macro label.  There should be no spaces unless they are part
  2064.           of the string.
  2065.  
  2066.        >  Strings may be up to 32 characters in length (control characters
  2067.           like "^M" count as one).  Upper/lower case is ignored.
  2068.  
  2069.        >  ANSI control sequences are filtered if ANSI or VT102 emulation is
  2070.           enabled.
  2071.  
  2072.        >  Remember that short strings may not be unique enough, long
  2073.           strings may not match due to line noise.
  2074.  
  2075.        >  Rules for representing special characters in LOOKfor strings are
  2076.           given in Appendix D "ASCII Character Representation."
  2077.  
  2078.        See also: GOLOok, SETLook.
  2079.  
  2080.  
  2081.        MACLoad
  2082.        -------
  2083.        Default key: none
  2084.        Description: Load a new Macro File.
  2085.  
  2086.        Switches:
  2087.  
  2088.                R1 or R   Specifies that COMMO.MAC will be reloaded when
  2089.                          carrier detect is lost.  Normally this would occur
  2090.                          at the end of the call.
  2091.  
  2092.                R0        Do not reload COMMO.MAC when carrier is lost
  2093.                          (default).
  2094.  
  2095.        General form:
  2096.  
  2097.           {MACLoad filename,label}
  2098.  
  2099.                filename       The new Macro File.  Do NOT specify a path;
  2100.                               the {COMMO} home directory will be used.
  2101.  
  2102.                label          A label to GOTO when the new file is loaded. 
  2103.                               Optional.
  2104.  
  2105.        Examples:
  2106.  
  2107.           {macload-R vt102-1.mac}       Load vt102-1.mac, reload COMMO.MAC
  2108.                                         at the end of the call.
  2109.  
  2110.           {macl newmac.fil,abc}         Load newmac.fil, start macro "abc"
  2111.                                         in the new file.
  2112.  
  2113.  
  2114.  
  2115.                    {COMMO} (tm)  Macro Programming Guide            page 34
  2116.  
  2117.  
  2118.        IMPORTANT!  The new Macro File must reside in the {COMMO} home
  2119.        directory (do not specify a path).
  2120.  
  2121.        The current file will be saved to disk if changes are outstanding. 
  2122.        The new file is then loaded in place of the current one (all macros
  2123.        are replaced).  
  2124.  
  2125.        MACLoad should be the last function in a macro, since control is not
  2126.        returned.
  2127.  
  2128.  
  2129.        MACRo
  2130.        -----
  2131.        Default key: Alt-M
  2132.        Description: Open Macro Processor window.
  2133.  
  2134.        Examples:
  2135.  
  2136.           {macro}             Open window at current position.
  2137.           {macro menu1}       Open window at "menu1."
  2138.  
  2139.        NOTE:  The MACRo function always terminates the currently executing
  2140.        macro.
  2141.  
  2142.        A string argument may be included to facilitate the creation of
  2143.        menus within the Macro File.  The first occurrence of the argument
  2144.        string will become the top line of the display when the window is
  2145.        opened.
  2146.  
  2147.        The Selector Bar will be positioned on the first screen line that
  2148.        has a left curly brace, if any.
  2149.  
  2150.        Here is an example of how to structure a menu using MACRo:
  2151.  
  2152.  
  2153.                                              | (this is past col. 80)
  2154.                                              | menu111
  2155.                     Name of Menu             |
  2156.                                              |
  2157.                                              |
  2158.                     Selection 1              | {exec ... } {}
  2159.                     Selection 2              | {exec ... } {}
  2160.                     Selection 3              | {exec ... } {}
  2161.                                              | {:af1} {macro menu111}
  2162.  
  2163.  
  2164.        The upper line with "menu111" will be the top line of the screen. 
  2165.        Pressing Alt-F1 will bring up the menu with the Selector Bar on
  2166.        Selection 1.
  2167.  
  2168.        Remember that the function itself will be found in the search since
  2169.        it contains the string.
  2170.  
  2171.  
  2172.  
  2173.                    {COMMO} (tm)  Macro Programming Guide            page 35
  2174.  
  2175.  
  2176.  
  2177.  
  2178.        MARK
  2179.        ----
  2180.        Default key: none
  2181.        Description: Mark Dialing Directory entries for dialing.
  2182.  
  2183.        Example:
  2184.  
  2185.           {mark joes-bbs,file-city}     Mark entries for dialing.
  2186.  
  2187.        Dialing Strings may be separated by spaces or commas.
  2188.  
  2189.        {COMMO} will search the Dialing Directory for each string and mark
  2190.        the first entry where a match is found.  Case is ignored.
  2191.  
  2192.        The strings may consist of any part of a Dialing Directory entry
  2193.        line (including passwords).  However the following characters may
  2194.        not appear in a macro Dialing String: space, comma, left or right
  2195.        curly brace. 
  2196.  
  2197.        See also: DIAL, UNMArk.
  2198.  
  2199.  
  2200.        NOOP
  2201.        ----
  2202.        Default key: none
  2203.        Description: No-op function, does nothing
  2204.  
  2205.        Example:
  2206.  
  2207.           {noop}              No arguments.
  2208.  
  2209.  
  2210.        PARMs
  2211.        -----
  2212.        Default key: Alt-P
  2213.        Description: Set Current Terminal Parameters
  2214.  
  2215.        General form:
  2216.  
  2217.           {PARMs speed,format,comport,terminal-type,delay}
  2218.  
  2219.                speed          The bps rate: 2400, 9600, etc.
  2220.                format         The data format: 8n1, 7e1, etc.
  2221.                comport        The serial port number: 1, 2, 3 or 4.
  2222.                terminal       The terminal-type: A, V or T.
  2223.                delay          The inter-character delay factor: 0-999.
  2224.  
  2225.        Examples:
  2226.  
  2227.           {parms 2400,8,1,,20}     Set 2400 bps, 8n1, Com1, delay = 20.
  2228.  
  2229.  
  2230.  
  2231.                    {COMMO} (tm)  Macro Programming Guide            page 36
  2232.  
  2233.  
  2234.  
  2235.           {parms ,,4,V}            Set Com4 VT102.
  2236.  
  2237.           {parms 19200,7o1}        Set 19200 bps, 7o1.
  2238.  
  2239.        Note that omitted parameters are not changed.
  2240.  
  2241.        See also DPARms.
  2242.  
  2243.  
  2244.        PASSword
  2245.        --------
  2246.        Default key: Alt-W
  2247.        Description: Send current password.
  2248.  
  2249.        Example:
  2250.  
  2251.           {password}          No arguments.
  2252.  
  2253.        The current password is obtained from the Dialing Directory entry
  2254.        whenever a number is dialed.  If no password is specified no
  2255.        characters will be sent.
  2256.  
  2257.  
  2258.        PAUSe
  2259.        -----
  2260.        Default key: none
  2261.        Description: Pause for up to 999 seconds.
  2262.  
  2263.        Example:
  2264.  
  2265.           {pause 25}          Pause for 25 seconds.
  2266.  
  2267.        NOTE:  Incoming characters displayed during a PAUSe function are not
  2268.        seen by subsequent GOLOok/LOOKfor functions.
  2269.  
  2270.  
  2271.        POPStack
  2272.        --------
  2273.        Default key: none
  2274.        Description: Pop an element from the macro stack.
  2275.  
  2276.        Switches:
  2277.  
  2278.                C1 or C   Clear all elements from the stack.
  2279.  
  2280.                C0        Pop the top element (default).
  2281.  
  2282.        Example:
  2283.  
  2284.           {pops}              Pop the top element.
  2285.           {pops-c}            Clear the stack.
  2286.  
  2287.  
  2288.  
  2289.                    {COMMO} (tm)  Macro Programming Guide            page 37
  2290.  
  2291.  
  2292.  
  2293.        POPStack throws away the top element on the macro stack.  This
  2294.        element would have been used by the next RETUrn function.
  2295.  
  2296.        See PUSHstack for a more complete description of the use of this
  2297.        function.
  2298.  
  2299.        See also CALL, RETUrn, GOLOok, LOOKfor.
  2300.  
  2301.  
  2302.        PRINtlog
  2303.        --------
  2304.        Default key: Alt-2
  2305.        Description: Set Print Log toggle.
  2306.  
  2307.        Examples:
  2308.  
  2309.           {print}             Toggle Print Log on/off.
  2310.           {print y}           Turn on Print Log.
  2311.           {print n}           Turn off Print Log.
  2312.  
  2313.  
  2314.        PUSHstack
  2315.        ---------
  2316.        Default key: none
  2317.        Description: Push a return point onto the macro stack.
  2318.  
  2319.        Examples:
  2320.  
  2321.           {push}              Push the current location.
  2322.           {push abc}          Push the location "abc".
  2323.  
  2324.        When there are no arguments, the location pushed is the location of
  2325.        the PUSHstack function itself (i.e., it will be executed again when
  2326.        a RETUrn is encountered).
  2327.  
  2328.        Explanation:  Whenever a CALL is executed, the location of the
  2329.        function following the CALL (the "return point") is "pushed" onto
  2330.        the macro stack.  When a subsequent RETUrn is executed, the location
  2331.        at the top of the stack is "popped" and control is transferred to
  2332.        that location.  This allows "nesting" of CALLs and RETUrns.
  2333.  
  2334.        PUSHstack will push a return point onto the macro stack without
  2335.        transferring control to the location (control continues in
  2336.        sequence).  A subsequent RETUrn will transfer control to the
  2337.        location that was pushed.
  2338.  
  2339.        POPStack will remove the top stack element without transferring
  2340.        control to it (control continues in sequence).
  2341.  
  2342.  
  2343.  
  2344.                    {COMMO} (tm)  Macro Programming Guide            page 38
  2345.  
  2346.  
  2347.        These functions may be used to set a return point for GOLOok/LOOKfor
  2348.        functions, so that the same GOLOok routines may be used in more than
  2349.        one macro.  They also help to create macros with improved structure.
  2350.  
  2351.        Here is a sample construct using PUSHstack and POPStack:
  2352.  
  2353.           {:mmm} {call ggg} ...
  2354.            ...
  2355.           {:ggg} ...
  2356.                 {pushstack}
  2357.                 {golook aaa,string1}
  2358.                 {golook bbb,string2}
  2359.                 {golook ccc,string3}
  2360.                 {lookfor string4} {send answer4}
  2361.                 {popstack} {return}
  2362.  
  2363.           {:aaa} {send answer1} {return}
  2364.           {:bbb} {send answer2} {return}
  2365.           {:ccc} {send answer3} {return}
  2366.  
  2367.        If strings 1,2 or 3 come in, responses will be sent and control will
  2368.        RETUrn to the PUSHstack (and execute it again).  If string 4 comes
  2369.        in the element pushed will be discarded by the POPStack and control
  2370.        will return following the {call ggg}.
  2371.  
  2372.        See also CALL, RETUrn, GOLOok, LOOKfor.
  2373.  
  2374.  
  2375.        RCLOse
  2376.        ------
  2377.        Default key: none
  2378.        Description: Close the read file.
  2379.  
  2380.        Example:
  2381.  
  2382.           {rclose}            No arguments.
  2383.  
  2384.        IMPORTANT!  The read file will be closed automatically in the
  2385.        following situations:
  2386.  
  2387.           1)   When an attempt is made to read past the end of the file.
  2388.           2)   When the macro terminates (STOP, EXIT, etc.).
  2389.  
  2390.        A macro error will result if you try to close and no file is open.
  2391.  
  2392.        See also ROPEn, READ.
  2393.  
  2394.  
  2395.        READ
  2396.        ----
  2397.        Default key: none
  2398.        Description: Read a line from the read file to a variable.
  2399.  
  2400.  
  2401.  
  2402.                    {COMMO} (tm)  Macro Programming Guide            page 39
  2403.  
  2404.  
  2405.  
  2406.        Example:
  2407.  
  2408.           {read nextline}          Read the next line in the file into the
  2409.                                    variable "nextline."
  2410.  
  2411.        TIPS on reading files:
  2412.  
  2413.        >  Each READ will get another line until the end of the file is
  2414.           encountered, at which time control will GOTO the label specified
  2415.           when the file was opened.  If no label was specified (or the
  2416.           label is invalid) control continues in sequence.  In either case
  2417.           the file will be closed.
  2418.  
  2419.        >  ALL control characters (below ASCII 28) will be discarded,
  2420.           including the carriage return/linefeed that terminates the line.
  2421.  
  2422.        >  A file must be open for reading or a macro error will result.
  2423.  
  2424.        See also ROPEn, RCLOse
  2425.  
  2426.  
  2427.        RETUrn
  2428.        ------
  2429.        Default key: none
  2430.        Description: Return from a CALLed macro.
  2431.  
  2432.        Example:
  2433.  
  2434.           {return}            No arguments.
  2435.  
  2436.        This function will return control to a location determined by the
  2437.        last CALL or PUSHstack function.  See PUSHstack for a more complete
  2438.        description of the use of CALL/RETUrn.
  2439.  
  2440.        NOTE:  If a RETUrn is encountered and no CALL or PUSHstack has been
  2441.        executed, a STOP will occur.  This is useful in macros that are
  2442.        CALLed and are also used standalone (such as protocol file transfer
  2443.        macros).
  2444.  
  2445.        See also CALL, PUSHstack, POPStack.
  2446.  
  2447.  
  2448.        ROPEn
  2449.        -----
  2450.        Default key: none
  2451.        Description: Open a file for reading.
  2452.  
  2453.        General Form:
  2454.  
  2455.           {ROPEn name,label}
  2456.  
  2457.  
  2458.  
  2459.                    {COMMO} (tm)  Macro Programming Guide            page 40
  2460.  
  2461.  
  2462.                name      The name of a string variable.
  2463.  
  2464.                label     A label to GOTO when a READ is attempted at the
  2465.                          end of the file.
  2466.  
  2467.        Example:
  2468.  
  2469.           {ropen c:\bbs\file.txt,nomore}     Open the file and set the
  2470.                                              label "nomore" to GOTO when
  2471.                                              the end of the file is
  2472.                                              reached.
  2473.  
  2474.        TIPS on using ROPEn:
  2475.  
  2476.        >  Only one file may be opened for reading (and one for writing).
  2477.  
  2478.        >  The file will be automatically closed when the end of the file is
  2479.           encountered during a READ (whether or not a label is specified). 
  2480.           An RCLOse is not needed in this situation and will cause a macro
  2481.           error.
  2482.  
  2483.        See also READ, RCLOse.
  2484.  
  2485.  
  2486.        RXMOdem
  2487.        -------
  2488.        Default key: none
  2489.        Description: Receive a file using Xmodem.
  2490.  
  2491.        Switches:
  2492.  
  2493.                C1 or C   Use CRC error correction (default).
  2494.                C0        Use Checksum error correction.
  2495.                D1 or D   Cancel transfer if carrier detect is lost
  2496.                          (default).
  2497.                D0        Ignore state of carrier detect.
  2498.                A1 or A   Sound the alarm at end of transfer.
  2499.                A0        Do not sound the alarm (default).
  2500.                W         Wait for a keypress at end of transfer.
  2501.                Wn        Wait for "n" seconds, "n" may range from 0 to 999. 
  2502.                          Press a key to cancel the wait.
  2503.                          Note:  Default (no "W" switch) is no wait.
  2504.  
  2505.        Example:
  2506.  
  2507.           {rxmo-a c:\dl\file.zip}            Receive "file.zip", sound the
  2508.                                              alarm.
  2509.  
  2510.        TIPS on using RXMOdem:
  2511.  
  2512.  
  2513.  
  2514.                    {COMMO} (tm)  Macro Programming Guide            page 41
  2515.  
  2516.  
  2517.        >  IMPORTANT!  If the file already exists it will be overwritten
  2518.           without warning.  The IFEXist function may be used to prevent
  2519.           this if desired.
  2520.  
  2521.        >  Block size is established by the sender and may be changed on a
  2522.           block-by-block basis.
  2523.  
  2524.        >  The transfer will be cancelled after 10 consecutive errors, if
  2525.           the sender cancels or if you press Esc.
  2526.  
  2527.        >  The Exit Code (test with IFER) will be set at the end of the
  2528.           transfer.  The Exit Code will also be stored in the variable
  2529.           "_err".  0 means success, 1 means failure.
  2530.  
  2531.        >  If the Usage Log is enabled, an entry will be made at the end of
  2532.           each transfer.
  2533.  
  2534.        See also SXMOdem.
  2535.  
  2536.  
  2537.        SCREen
  2538.        ------
  2539.        Default key: Alt-I
  2540.        Description: Screen Image Save.
  2541.  
  2542.        Examples:
  2543.  
  2544.           {screen}                 Open Screen Image Save window.
  2545.           {screen y}               Append screen image to current file.
  2546.           {screen y,commo.scr}     Append screen image to indicated file.
  2547.                                    (and change current pathname).
  2548.           {screen n,c:\file.xyz}   Change current screen image pathname
  2549.                                    (don't save screen to file).
  2550.  
  2551.  
  2552.        SCROllback
  2553.        ----------
  2554.        Default key: Alt-K
  2555.        Description: Display Scrollback Buffer
  2556.  
  2557.        Example:
  2558.  
  2559.           {scroll}            No arguments.
  2560.  
  2561.  
  2562.        SEND
  2563.        ----
  2564.        Default key: none
  2565.        Description: Send a string to the modem (serial port).
  2566.  
  2567.        Examples:
  2568.  
  2569.  
  2570.  
  2571.                    {COMMO} (tm)  Macro Programming Guide            page 42
  2572.  
  2573.  
  2574.           {send Fred|~~Brucker|~~%_pass%|}
  2575.  
  2576.                               Send my first and last name with carriage
  2577.                               returns and 1 second delays, then send the
  2578.                               current password and a <cr>.
  2579.  
  2580.           {send ^[^[}         Send two <esc> characters.
  2581.  
  2582.           {send  }            Send a space (there must be two spaces, the
  2583.                               first is the separator).
  2584.  
  2585.           {send %line}        Send the string in the variable "line".
  2586.  
  2587.  
  2588.        NOTE:  See Appendix D "ASCII Character Representation" for
  2589.        information on how to represent any character in a SEND function.
  2590.  
  2591.  
  2592.        SETEsc
  2593.        ------
  2594.        Default key: none
  2595.        Description: Define a label to GOTO when Esc is pressed.
  2596.  
  2597.        General form:
  2598.  
  2599.           {setesc label}
  2600.  
  2601.                label     A label to GOTO when the user presses Esc during
  2602.                          macro execution.
  2603.  
  2604.        Switches:
  2605.  
  2606.                P1 or P   The user will be prompted with, "A macro is
  2607.                          running.  Terminate it?."  If the user answers
  2608.                          "no," macro processing will continue as if nothing
  2609.                          had happened.  If "yes," processing will GOTO the
  2610.                          label.  If the label does not exist, a STOP will
  2611.                          be executed.  P1 is the default.
  2612.  
  2613.                P0        The user will not be prompted.  Processing will
  2614.                          GOTO the label if it exists, else a STOP will be
  2615.                          executed.
  2616.  
  2617.        Examples:
  2618.  
  2619.           {setesc finish}          GOTO label, with prompt.
  2620.           {sete-p0 done}           GOTO label, without prompt.
  2621.           {setesc}                 Reset to no label (STOP on Esc).
  2622.  
  2623.  
  2624.  
  2625.                    {COMMO} (tm)  Macro Programming Guide            page 43
  2626.  
  2627.  
  2628.        This function is used to "capture" the Esc key during macro
  2629.        execution, especially when a MACLoad is used to load a new Macro
  2630.        File.  It will help prevent accidental macro terminations.
  2631.  
  2632.        The macro at the label would typically reload COMMO.MAC, thus
  2633.        restoring the user's familiar environment.
  2634.  
  2635.        NOTE:  In the various command windows, Esc is normally used to exit
  2636.        the window.  Use Ctrl-Break to bring up the prompt.
  2637.  
  2638.  
  2639.        SETGet
  2640.        -------
  2641.        Default key: none
  2642.        Description: Set parameters for GETString functions.
  2643.  
  2644.        General form:
  2645.  
  2646.           {SETGet seconds,label,y/n/l,string}
  2647.  
  2648.                seconds   GETString timeout.  If a character is not entered
  2649.                          in the specified amount of time, the macro in the
  2650.                          second argument will be started.  May be 0 to 999. 
  2651.                          Default is 0 (disabled).
  2652.  
  2653.                label     Timeout macro.  Macro to GOTO if the time in the
  2654.                          first argument expires.  If no macro is specified
  2655.                          or if the macro label is invalid, control will
  2656.                          pass to the function following the GETString. 
  2657.                          Default is no macro.
  2658.  
  2659.                          Note that if the timer expires no variable
  2660.                          assignment will be made.  Any previous assignment
  2661.                          will be unaltered.
  2662.  
  2663.                y/n/l     Echo Status.  If this is "yes", characters entered
  2664.                          at the local or remote terminals will be echoed
  2665.                          back to the remote and displayed locally.  This is
  2666.                          the default.
  2667.  
  2668.                          If "no", characters will not be echoed to either
  2669.                          location.
  2670.  
  2671.                          If "local", characters will be displayed locally,
  2672.                          but not echoed to the remote.  This should be used
  2673.                          when the remote is a host system.
  2674.  
  2675.                          IMPORTANT!  This setting is independent of Local
  2676.                          Echo.  Turn on Local Echo if necessary for local
  2677.                          display of data sent with SEND, ASCIiup, etc.
  2678.  
  2679.  
  2680.  
  2681.                    {COMMO} (tm)  Macro Programming Guide            page 44
  2682.  
  2683.  
  2684.                string    Terminator response.  This string will be sent
  2685.                          and/or displayed locally (in accord with the Echo
  2686.                          Status) when a carriage return is received (input
  2687.                          terminated).  This is typically a carriage
  2688.                          return/linefeed.  May be up to 32 characters. 
  2689.                          Default is no string.
  2690.  
  2691.        Example:
  2692.  
  2693.           {setg 120,noget,y,^m^j}       Set GETString parameters.
  2694.  
  2695.  
  2696.        The SETGet function will set parameters for all subsequent GETString
  2697.        functions.  It may be executed at any time to modify the parameters. 
  2698.  
  2699.        When macro processing terminates, the parameters will be reset to
  2700.        the default values.
  2701.  
  2702.        Default arguments are:      GETString timeout        0 (disabled)
  2703.                                    Timeout macro            none 
  2704.                                    Echo status              y (echo on)
  2705.                                    Terminator response      none
  2706.  
  2707.        IMPORTANT!  Null arguments in the SETGet function will be set to
  2708.        these defaults.
  2709.  
  2710.        See also: GETString.
  2711.  
  2712.  
  2713.        SETLook
  2714.        -------
  2715.        Default key: none
  2716.        Description: Set parameters for LOOKfor functions.
  2717.  
  2718.        General form:
  2719.  
  2720.           {SETLook seconds,label,seconds,string}
  2721.  
  2722.                seconds   LOOKfor timeout.  Maximum time in seconds to look
  2723.                          for a string.  If the string is not found in the
  2724.                          allotted time, the macro in the second argument
  2725.                          will be started.  May be 0 to 999.  Default is 0
  2726.                          (disabled).  
  2727.  
  2728.                label     Timeout macro.  Macro to GOTO if the time in the
  2729.                          first argument expires.  If no macro is specified
  2730.                          or if the macro label is invalid, control will
  2731.                          pass to the function following the LOOKfor.
  2732.  
  2733.                seconds   Prompt timeout.  During a LOOKfor function
  2734.                          unwanted prompts may appear like "Press any key"
  2735.                          or "More [Y/n]", etc.  This argument is the time
  2736.  
  2737.  
  2738.  
  2739.                    {COMMO} (tm)  Macro Programming Guide            page 45
  2740.  
  2741.  
  2742.                          in seconds to wait at a prompt (no input from the
  2743.                          modem) before sending the string in the fourth
  2744.                          argument.  Usually you would send "|" or "n|".
  2745.  
  2746.                          When the response string is sent the timer is
  2747.                          restarted, allowing any number of prompts to be
  2748.                          satisfied (until the LOOKfor itself is satisfied
  2749.                          or times out).
  2750.  
  2751.                          The timer will also be restarted if any keys are
  2752.                          typed while waiting.  This allows a manual
  2753.                          response to a prompt which the macro does not
  2754.                          handle.
  2755.  
  2756.                          IMPORTANT!  The prompt timeout should be long
  2757.                          enough (or disabled entirely) to prevent the
  2758.                          response from being sent when there is a long
  2759.                          delay without a prompt.  This might occur right
  2760.                          after connection while the BBS software is loading
  2761.                          or when a "door" program is loading.
  2762.  
  2763.                          Failure to heed this warning will result in "n"
  2764.                          responses to "First name?" and other undesirable
  2765.                          effects.
  2766.  
  2767.                          May be 0 to 999.  Default is 0 (disabled).
  2768.  
  2769.                string    Prompt response.  String to send when the time in
  2770.                          the third argument runs out.  May be up to 32
  2771.                          characters.  Default is no string.
  2772.  
  2773.        Example:
  2774.  
  2775.           {setl 60,abc,4,n|}       Set LOOKfor parameters
  2776.  
  2777.  
  2778.        The SETLook function will set parameters for all subsequent LOOKfor
  2779.        functions.  It may be executed at any time to modify the parameters. 
  2780.  
  2781.        When macro processing terminates, the parameters will be reset to
  2782.        the default values.
  2783.  
  2784.        Default arguments are:      LOOKfor timeout     0 (disabled)
  2785.                                    Timeout macro       none 
  2786.                                    Prompt timeout      0 (disabled)
  2787.                                    Prompt response     none
  2788.  
  2789.        IMPORTANT!  Null arguments in the SETLook function will revert to
  2790.        these defaults.
  2791.  
  2792.        See also: LOOKfor, GOLOok.
  2793.  
  2794.  
  2795.  
  2796.                    {COMMO} (tm)  Macro Programming Guide            page 46
  2797.  
  2798.  
  2799.  
  2800.        SETVariable
  2801.        -----------
  2802.        Default key: none
  2803.        Description: Assign a string to a variable name.
  2804.  
  2805.        General form:
  2806.  
  2807.           {SETVariable name,string}
  2808.  
  2809.                name      The name of the variable to which the string will
  2810.                          be assigned.
  2811.  
  2812.                string    The string may be the name of another {COMMO}
  2813.                          variable or an environment variable.  In these
  2814.                          cases further expansion is controlled by switches
  2815.                          (see below).
  2816.  
  2817.        Switches:
  2818.  
  2819.                E1 or E   This switch indicates that the second argument is
  2820.                          a DOS environment variable.  If it is not found in
  2821.                          the environment, the {COMMO} variable will be set
  2822.                          to NULL.
  2823.  
  2824.                          Note that environment variable names are CASE
  2825.                          SENSITIVE (they are usually upper case).
  2826.  
  2827.                E0        Normal variable (default).
  2828.  
  2829.                S1 or S   This switch will cause "double expansion" of the
  2830.                          second argument (indirect variable).  First
  2831.                          {COMMO} will substitute any variables indicated by
  2832.                          "%" signs.  The resulting string (which must NOT
  2833.                          begin with a "%") will then be treated as a
  2834.                          variable name and expanded again.
  2835.  
  2836.                          This facility may be used to create a "subscript."
  2837.  
  2838.                S0        Single expansion (default).
  2839.  
  2840.        Examples:
  2841.  
  2842.           {setv net,nodeid}             Assign the string "nodeid" to the
  2843.                                         variable name "net".
  2844.  
  2845.           {setv nodeid,dirasnt}         Assign the string "dirasnt" to the
  2846.                                         variable name "nodeid".
  2847.  
  2848.           {setv-s bbs,nodeid}           Assuming the above examples have
  2849.                                         been executed, this will set the
  2850.                                         variable "bbs" to "dirasnt".
  2851.  
  2852.  
  2853.  
  2854.                    {COMMO} (tm)  Macro Programming Guide            page 47
  2855.  
  2856.  
  2857.  
  2858.           {setv-s board,%net}           Assuming the above examples have
  2859.                                         been executed, this will set the
  2860.                                         variable "board" to "dirasnt".
  2861.  
  2862.           {setv-s xxx,yyy%index}        Suppose the variable "index" has
  2863.                                         the value "3".  It will be expanded
  2864.                                         first, then "yyy3" will be expanded
  2865.                                         and its value assigned to "xxx".
  2866.  
  2867.           {setv-e abc,TABLE}            Assuming a "SET TABLE=" DOS command
  2868.                                         has been executed prior to running
  2869.                                         {COMMO}, the variable "abc" will be
  2870.                                         set to the environment string.
  2871.  
  2872.           {setv abc} or {setv abc,}     Set the variable "abc" to null (it
  2873.                                         will be deleted from variable
  2874.                                         space).
  2875.  
  2876.  
  2877.        SHELl
  2878.        -----
  2879.        Default key: Alt-S
  2880.        Description: Shell to DOS.
  2881.  
  2882.        Example:
  2883.  
  2884.           {shell}             No arguments.
  2885.  
  2886.  
  2887.        SFLOw
  2888.        -----
  2889.        Default key: none
  2890.        Description: Set Software Flow Control toggle.
  2891.  
  2892.        Examples:
  2893.  
  2894.           {sflow}             Toggle Software Flow Control on/off.
  2895.           {sflow y}           Turn on Software Flow Control.
  2896.           {sflow n}           Turn off Software Flow Control.
  2897.  
  2898.  
  2899.        SOUNd
  2900.        -----
  2901.        Default key: none
  2902.        Description: Set Master Sound toggle.
  2903.  
  2904.        Examples:
  2905.  
  2906.           {sound}             Toggle Master Sound on/off.
  2907.           {sound y}           Turn on Master Sound.
  2908.           {sound n}           Turn off Master Sound.
  2909.  
  2910.  
  2911.  
  2912.                    {COMMO} (tm)  Macro Programming Guide            page 48
  2913.  
  2914.  
  2915.  
  2916.  
  2917.        SPOCtrl
  2918.        -------
  2919.        Default key: none
  2920.        Description: Serial port output control.
  2921.  
  2922.        Examples:
  2923.  
  2924.           {spoc y}            Serial port output is ON.
  2925.           {spoc n}            Serial port output is OFF.
  2926.  
  2927.        This function will inhibit any data from being sent to the serial
  2928.        port.  All other program operations will be normal.  It is used for
  2929.        "local mode" in host macros (no data is sent to the modem).
  2930.  
  2931.        Serial port output will always be restored to ON at macro
  2932.        termination.
  2933.  
  2934.  
  2935.        STATusline
  2936.        ----------
  2937.        Default key: none
  2938.        Description: Set Status Line toggle.
  2939.  
  2940.        IMPORTANT!  The Status Line is {COMMO}'s instrument panel.  You
  2941.        should not turn it off until you are familiar with operating the
  2942.        program.
  2943.  
  2944.        Examples:
  2945.  
  2946.           {statusline}        Toggle Status Line on/off.
  2947.           {status y}          Turn on Status Line.
  2948.           {status n}          Turn off Status Line.
  2949.  
  2950.        When the Status Line is off (not visible), the bottom line of the
  2951.        display becomes part of the Terminal Screen.
  2952.  
  2953.        The STATusline function is ignored while in Chat Mode.
  2954.  
  2955.  
  2956.        STOP
  2957.        ----
  2958.        Default key: none
  2959.        Description: Halt macro execution.
  2960.  
  2961.        Examples:
  2962.  
  2963.           {stop}              No arguments.
  2964.           {}                  Short form.
  2965.  
  2966.  
  2967.  
  2968.                    {COMMO} (tm)  Macro Programming Guide            page 49
  2969.  
  2970.  
  2971.        STOP always returns {COMMO} to manual operation in the Terminal
  2972.        Screen.  It should be used to end login macros.
  2973.  
  2974.  
  2975.        SUBString
  2976.        ---------
  2977.        Default key: none
  2978.        Description: Move a substring to a variable.
  2979.  
  2980.        General form:
  2981.  
  2982.           {SUBString name,start,count,string}
  2983.  
  2984.                name      The name of the variable to which the substring
  2985.                          will be assigned.
  2986.  
  2987.                start     The starting character number (first character is
  2988.                          "1").  If it is negative, {COMMO} will count in
  2989.                          from the end of the string.
  2990.  
  2991.                          If it is too large and positive, the substring
  2992.                          will be null.
  2993.  
  2994.                          If it is too large and negative, the substring
  2995.                          will start at the beginning of the string.
  2996.  
  2997.                count     The number of characters to use.  If the number is
  2998.                          too large, {COMMO} will use as many as possible. 
  2999.                          If the count is 0, the substring will be null.
  3000.  
  3001.                string    The string to use.
  3002.  
  3003.        Examples:
  3004.  
  3005.           {subs var-sub,2,4,abcdefgh}        Set "var-sub" to "bcde".
  3006.           {subs newvar,-5,20,abcdefgh}       Set "newvar" to "defgh".
  3007.  
  3008.  
  3009.        SXMOdem
  3010.        -------
  3011.        Default key: none
  3012.        Description: Send a file using Xmodem.
  3013.  
  3014.        Switches:
  3015.  
  3016.                K1 or K   Use 1024 byte block size (Xmodem-1k).
  3017.                K0        Use 128 byte block size (default).
  3018.                D1 or D   Cancel transfer if carrier detect is lost
  3019.                          (default).
  3020.                D0        Ignore state of carrier detect.
  3021.                A1 or A   Sound the alarm at end of transfer.
  3022.                A0        Do not sound the alarm (default).
  3023.  
  3024.  
  3025.  
  3026.                    {COMMO} (tm)  Macro Programming Guide            page 50
  3027.  
  3028.  
  3029.                W         Wait for a keypress at end of transfer.
  3030.                Wn        Wait for "n" seconds, "n" may range from 0 to 999. 
  3031.                          Press a key to cancel the wait.
  3032.                          Note:  Default (no "W" switch) is no wait.
  3033.  
  3034.        Example:
  3035.  
  3036.           {sxmo-ka c:\ul\file.zip}           Send "file.zip" using 1024
  3037.                                              byte block size, sound the
  3038.                                              alarm.
  3039.  
  3040.        TIPS on using SXMOdem:
  3041.  
  3042.        >  The transfer will be cancelled after 10 consecutive errors, if
  3043.           the receiver cancels or if you press Esc.
  3044.  
  3045.        >  CRC vs. Checksum mode is established by the receiver.
  3046.  
  3047.        >  The Exit Code (test with IFER) will be set at the end of the
  3048.           transfer.  The Exit Code will also be stored in the variable
  3049.           "_err".  0 means success, 1 means failure.
  3050.  
  3051.        >  If the Usage Log is enabled, an entry will be made at the end of
  3052.           each transfer.
  3053.  
  3054.        See also RXMOdem.
  3055.  
  3056.  
  3057.        TOGGles
  3058.        -------
  3059.        Default key: Alt-T
  3060.        Description: Set various toggle parameters.
  3061.  
  3062.        Example:
  3063.  
  3064.           {toggles}                Open Set Toggles window.
  3065.  
  3066.  
  3067.        UNMArk
  3068.        ------
  3069.        Default key: none
  3070.        Description: Unmark Dialing Directory entries.
  3071.  
  3072.        Example:
  3073.  
  3074.           {unmark joes-bbs,file-city}        Unmark listed entries.
  3075.           {unmark}                           Unmark all entries.
  3076.  
  3077.        See the description of the MARK function for the rules on writing
  3078.        macro Dialing Strings.
  3079.  
  3080.        See also: DIAL, MARK.
  3081.  
  3082.  
  3083.  
  3084.                    {COMMO} (tm)  Macro Programming Guide            page 51
  3085.  
  3086.  
  3087.  
  3088.  
  3089.        VTCUr
  3090.        -----
  3091.        Default key: none
  3092.        Description: Define a VT102 cursor (arrow) key.
  3093.  
  3094.        Example:
  3095.  
  3096.           {vtcur ^[[A|^[OA}        Define up-arrow key strings.
  3097.  
  3098.        The first string is sent when cursor mode is active; the second
  3099.        string is sent when application mode is active (these modes are
  3100.        controlled by the host).
  3101.  
  3102.        The two strings must be separated by a "|".  Use "^m" for carriage
  3103.        return if necessary.
  3104.  
  3105.        See also VTPAd.
  3106.  
  3107.  
  3108.        VTPAd
  3109.        -----
  3110.        Default key: none
  3111.        Description: Define a VT102 keypad key.
  3112.  
  3113.        Example:
  3114.  
  3115.           {vtpad 5|^[Ou}           Define keypad "5" key strings.
  3116.  
  3117.        The first string is sent when numeric mode is active; the second
  3118.        string is sent when application mode is active (these modes are
  3119.        controlled by the host).
  3120.  
  3121.        The two strings must be separated by a "|".  Use "^m" for carriage
  3122.        return if necessary.
  3123.  
  3124.        See also VTCUr.
  3125.  
  3126.  
  3127.        WCLOse
  3128.        ------
  3129.        Default key: none
  3130.        Description: Close the write file.
  3131.  
  3132.        Example:
  3133.  
  3134.           {wclose}            No arguments.
  3135.  
  3136.        IMPORTANT!  A macro error will result if you try to close and no
  3137.        file is open.
  3138.  
  3139.  
  3140.  
  3141.                    {COMMO} (tm)  Macro Programming Guide            page 52
  3142.  
  3143.  
  3144.        See also WOPEn, WRITE.
  3145.  
  3146.  
  3147.        WOPEn
  3148.        -----
  3149.        Default key: none
  3150.        Description: Open a file for writing.
  3151.  
  3152.        Switches:
  3153.  
  3154.                A1 or A   Open the file in "append" mode.  New lines written
  3155.                          to the file will be added at the end.  If the file
  3156.                          doesn't exist, it will be created.
  3157.  
  3158.                A0        Open the file in "create" mode.  If the file
  3159.                          exists, it will be erased (default).
  3160.  
  3161.        Examples:
  3162.  
  3163.           {wopen c:\bbs\file.txt}       Open the file in create mode.
  3164.  
  3165.           {wopen-a c:\data\word.fil}    Open the file in append mode.
  3166.  
  3167.        TIP on using WOPEn:
  3168.  
  3169.        >  Only one file may be opened for writing (and one for reading).
  3170.  
  3171.        See also WRITe, WCLOse.
  3172.  
  3173.  
  3174.        WRITE
  3175.        -----
  3176.        Default key: none
  3177.        Description: Write a string to the write file.
  3178.  
  3179.        Examples:
  3180.  
  3181.           {write %nextline}        Write the contents of the variable
  3182.                                    "nextline" to the write file.
  3183.  
  3184.           {write}                  Write a carriage return/linefeed only
  3185.                                    (blank line) to the file.
  3186.  
  3187.           {write %num%> }          Write the contents of "num" followed by
  3188.                                    a ">" and a space.
  3189.  
  3190.        TIPS on writing to files:
  3191.  
  3192.        >  A file must be open for writing or a macro error will result.
  3193.  
  3194.        >  The string will be written as one line, terminated by a carriage
  3195.           return/linefeed.
  3196.  
  3197.  
  3198.  
  3199.                    {COMMO} (tm)  Macro Programming Guide            page 53
  3200.  
  3201.  
  3202.  
  3203.        >  Control character translation is not performed on the write
  3204.           string.
  3205.  
  3206.        >  A macro error will result if the disk is full.
  3207.  
  3208.        See also WOPEn, WCLOse
  3209.  
  3210.  
  3211.        ========================================
  3212.        Appendix A   Table of {COMMO} Key-labels
  3213.        ========================================
  3214.  
  3215.        Key-labels are also macro labels with the added advantage that the
  3216.        macro can be started by pressing the associated key from the
  3217.        Terminal Screen.  Most "extended" keys may be assigned this way.  If
  3218.        the same key-label appears more than once, the first occurrence will
  3219.        be used.  Note that key-labels are case insensitive.  The caret (^)
  3220.        indicates the Ctrl key.
  3221.  
  3222.        Enhanced keyboard key-labels are listed below.
  3223.  
  3224.  
  3225.                Key Name     Key-label     Key Name     Key-label
  3226.                ________     _________     ________     _________
  3227.  
  3228.                Normal-F1     nf1   ...    Normal-F10    nf0
  3229.                Ctrl-F1       cf1   ...    Ctrl-F10      cf0
  3230.                Shift-F1      sf1   ...    Shift-F10     sf0
  3231.                Alt-F1        af1   ...    Alt-F10       af0
  3232.  
  3233.                Alt-A         ala   ...    Alt-Z         alz
  3234.                Alt-1         al1   ...    Alt-0         al0
  3235.                Alt =         al=          Alt -         al-
  3236.  
  3237.                Escape        esc          Grey *        gr*
  3238.                Grey -        gr-          Grey +        gr+
  3239.  
  3240.                Backspace     bsp          ^Backspace    cbs
  3241.                Tab           tab          Shift-tab     stb
  3242.                Enter         ent          ^Enter        cen
  3243.  
  3244.                Home          hom          End           end
  3245.                PgUp          pgu          PgDn          pgd
  3246.                Up-Arrow      upa          Down-Arrow    dna
  3247.                Left-Arrow    lfa          Right-Arrow   rta
  3248.                Insert        ins          Delete        del
  3249.  
  3250.                ^Home         chm          ^End          cnd
  3251.                ^PgUp         cpu          ^PgDn         cpd
  3252.                ^Right-Arrow  cra          ^Left-Arrow   cla
  3253.  
  3254.  
  3255.  
  3256.                    {COMMO} (tm)  Macro Programming Guide            page 54
  3257.  
  3258.  
  3259.                Keypad-0      kp0   ...    Keypad-9      kp9
  3260.                Keypad-.      kp.          ^PrtSc        cpr
  3261.  
  3262.  
  3263.        Enhanced Keyboard Key-labels
  3264.        ============================
  3265.  
  3266.        IMPORTANT!  To use the following keys you must tell {COMMO} to test
  3267.        for the enhanced keyboard.  The item {tek=yes} must appear in your
  3268.        Setup File.
  3269.  
  3270.                Normal-F11    nfa          Normal-F12    nfb
  3271.                Ctrl-F11      cfa          Ctrl-F12      cfb
  3272.                Shift-F11     sfa          Shift-F12     sfb
  3273.                Alt-F11       afa          Alt-F12       afb
  3274.  
  3275.                Alt-[         al[          Alt-]         al]
  3276.                Alt-;         al;          Alt-'         al'
  3277.                Alt-,         al<          Alt-.         al.
  3278.                Alt-/         al/          Alt-\         al\
  3279.                Alt-*         al*          Alt-`         al`
  3280.                Center Key    cky
  3281.  
  3282.        The Center Key is the Keypad 5 with Numlock off.
  3283.  
  3284.        The keys in the second group may also work with the 83-key keyboard
  3285.        if your BIOS supports the enhanced keyboard.
  3286.  
  3287.  
  3288.        ============================================
  3289.        Appendix B   Macro Functions Listed by Class
  3290.        ============================================
  3291.  
  3292.        Variable manipulation
  3293.        ---------------------
  3294.  
  3295.           SETVariable    Assign a string to a variable name
  3296.           INCRement      Increment a numeric variable
  3297.           DECRement      Decrement a numeric variable
  3298.           INSTring       Find a string within a string
  3299.           SUBString      Move a substring to a variable
  3300.           LENGth         Determine the length of a string
  3301.  
  3302.        Looking for text
  3303.        ----------------
  3304.  
  3305.           AUTO           Auto Receive
  3306.           SETLook        Set LOOKfor parameters
  3307.           GOLOok         Additional string to look for
  3308.           LOOKfor        Look for string from port
  3309.  
  3310.  
  3311.  
  3312.                    {COMMO} (tm)  Macro Programming Guide            page 55
  3313.  
  3314.  
  3315.        File Input/Output
  3316.        -----------------
  3317.  
  3318.           ROPEn          Open a file for reading
  3319.           READ           Read from a file to a variable
  3320.           RCLOse         Close the read file
  3321.           WOPEn          Open a file for writing
  3322.           WRITe          Write to a file from a variable
  3323.           WCLOse         Close the write file
  3324.  
  3325.        Dialing/connect/disconnect
  3326.        --------------------------
  3327.  
  3328.           ABAUd          AutoBaud toggle
  3329.           DIAL           Dialing Directory
  3330.           DPARms         Set dialing default parameters
  3331.           HANGup         Drop DTR to hangup
  3332.           MARK           Mark numbers for dialing
  3333.           UNMArk         Unmark Dialing Directory entries
  3334.  
  3335.        Modem control
  3336.        -------------
  3337.  
  3338.           PARMs          Set current terminal parameters
  3339.           LOCAlecho      Local Echo toggle
  3340.           INITmodem      Send modem init string
  3341.           HFLOW          Hardware flow control
  3342.           SFLOw          Software flow control
  3343.           BREAk          Send Break
  3344.           LIGHts         Signal Lights toggle
  3345.           SPOCtrl        Serial port output control
  3346.  
  3347.        Send/receive data
  3348.        -----------------
  3349.  
  3350.           ASCIiup        ASCII Upload
  3351.           SEND           Send a text string
  3352.           CAPMode        Set Capture Mode
  3353.           CAPTure        Capture File Options
  3354.           SETGet         Set GETString parameters
  3355.           GETString      Get a string from the modem
  3356.           RXMOdem        Receive a file using Xmodem
  3357.           SXMOdem        Send a file using Xmodem
  3358.           PASSword       Send current password
  3359.           VTCUr          VT102 cursor key strings
  3360.           VTPAd          VT102 keypad key strings
  3361.  
  3362.        Testing
  3363.        -------
  3364.  
  3365.           COMPare        Compare a variable to a string
  3366.           IFCOndition    Test conditions set by COMPare
  3367.  
  3368.  
  3369.  
  3370.                    {COMMO} (tm)  Macro Programming Guide            page 56
  3371.  
  3372.  
  3373.           IFERrorlevel   Test if Exit Code   number
  3374.           IFEXist        Test for existence of file(s)
  3375.           IFCArrier      Test for presence of carrier detect
  3376.  
  3377.        Macro control
  3378.        -------------
  3379.  
  3380.           CALL           Execute a macro
  3381.           RETUrn         Return from a CALL
  3382.           PUSHstack      Push a location to the macro stack
  3383.           POPStack       Pop from the macro stack
  3384.           GOTO           Transfer control to a label
  3385.           STOP           Stop macro processing
  3386.           MACLoad        Load a new Macro File
  3387.           PAUSe          Pause for interval 1-999 second
  3388.           HOLD           Hold until specified 24 hr time
  3389.           SETEsc         Set a label to GOTO on Esc
  3390.  
  3391.        Video/sound related
  3392.        -------------------
  3393.  
  3394.           CLEAr          Clear Screen
  3395.           CURSor         Terminal Screen cursor toggle
  3396.           DISPlay        Display a string to the screen
  3397.           SCREen         Screen Image Save
  3398.           STATusline     Status Line on/off toggle
  3399.           SOUNd          Master Sound toggle
  3400.           ALARm          Ring the alarm
  3401.           BEEP           Sound a beep
  3402.  
  3403.        Miscellaneous
  3404.        -------------
  3405.  
  3406.           CHATmode       Chat Mode toggle
  3407.           DOORway        Doorway Mode toggle
  3408.           ELAPse         Reset the elapsed timer
  3409.           EDIT           Edit a file
  3410.           EXECute        Execute a DOS command
  3411.           EXIT           Exit {COMMO}
  3412.           HELP           Online Help topic
  3413.           INPUt          Input from the keyboard
  3414.           MACRo          Macro Processor window
  3415.           NOOP           No-op function, does nothing
  3416.           PRINtlog       Print Log toggle
  3417.           SCROllback     Display Scrollback Buffer
  3418.           SHELl          Shell to DOS
  3419.           TOGGles        Set Toggles
  3420.  
  3421.  
  3422.                                    - end -
  3423.  
  3424.